zoukankan      html  css  js  c++  java
  • [Matlab]协方差矩阵计算使用cov函数的结果与自编程序结果存在不一致

    目前还弄不清是什么原因,有多大影响,只知道存在这个问题。

    运行版本:

    1.MatlabR2015b windows64Bit

    2.https://octave-online.net/

    3.http://www.compileonline.com/execute_matlab_online.php

    代码:

    %自编协方差矩阵计算法结果一致,但与matlab自带的cov函数不一致
    % Rxx.m
    
    close all;
    clear;
    clc;
    rng('default');
    rng(0);
    A = randn(10,4);
    [r,c]=size(A);
    % method 1
    Rxx1=A'*A/r;
    %method2
    for n=1:r
     rx2_0(:,:,n)=A(n,:)'*A(n,:);
    end
    Rxx2=sum(rx2_0,3)/r;
    % method 3
    Rxx3=cov(A);
    fprintf('err1=%f
    ',sumsqr(Rxx1-Rxx2));
    fprintf('err2=%f
    ',sumsqr(Rxx1-Rxx3));
    fprintf('err3=%f
    ',sumsqr(Rxx2-Rxx3));
    

      

    结果

    err1接近于0,err2,err3相等且等于某个数,对比了一下对应的结果矩阵数据,确实有差异。

    Todo~.~

    ~不再更新,都不让我写公式,博客园太拉胯了
  • 相关阅读:
    菜农大叔抢楼
    实验室博客
    VS2008加入QT
    9G关于新唐M0的ISP的要点
    内部函数和外部函数
    51串口通信
    一个三位整数反向后输出
    C++重载函数定义和用法
    博客记录
    C语言练习笔记更新
  • 原文地址:https://www.cnblogs.com/alimy/p/9758643.html
Copyright © 2011-2022 走看看