[Matlab]協方差矩陣計算使用cov函數的結果與自編程序結果存在不一致
阿新 • • 發佈:2018-10-09
使用 exec https efault http fault 64bit 算法 brush
目前還弄不清是什麽原因,有多大影響,只知道存在這個問題。
運行版本:
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\n‘,sumsqr(Rxx1-Rxx2)); fprintf(‘err2=%f\n‘,sumsqr(Rxx1-Rxx3)); fprintf(‘err3=%f\n‘,sumsqr(Rxx2-Rxx3));
結果
err1接近於0,err2,err3相等且等於某個數,對比了一下對應的矩陣數據,確實有差異。
Todo~.~
[Matlab]協方差矩陣計算使用cov函數的結果與自編程序結果存在不一致