Учитывая данные матрицы данных M измерений и N выборок, скажем,
data = randn(N, M);
Я мог бы вычислить ковариационную матрицу с помощью
data_mu = data - ones(N, 1)*mean(data);
cov_matrix = (data_mu'*data_mu)./N
Если я использую родную функцию MATLAB
cov_matrix2 = cov(data)
это всегда будет равно
cov_matrix = (data_mu'*data_mu)./(N-1)
То есть знаменатель равен (N - 1) на единицу меньше.
Почему?? Можете ли вы воспроизвести его? Это баг??
Я использую MATLAB версии 7.6.0.324 (2008 г.).
N-1
, позвольте мне найти ее. newton.dep.anl.gov/newton/askasci/ 1993/math/MATH014.HTM wiki.answers.com/Q/'или'n-1' - person Hamish Grubijan   schedule 15.07.2010sample (co)variance
илиpopulation (co)variance
. Для больших N они довольно близки, но вы должны быть осторожны с маленькими N. - person Paul R   schedule 15.07.2010