鉴于:
A_1 = [10 200 7 150]';
A_2 = [0.001 0.450 0.007 0.200]';
(正如其他人已经指出的那样),有工具来简单计算的相关性,最明显的是corr :
corr(A_1, A_2); %Returns 0.956766573975184 (Requires stats toolbox)
您还可以使用基地Matlab的corrcoef功能,就像这样:
M = corrcoef([A_1 A_2]): %Returns [1 0.956766573975185; 0.956766573975185 1];
M(2,1); %Returns 0.956766573975184
这是密切相关的cov功能:
cov([condition(A_1) condition(A_2)]);
当你几乎你原来的问题搞定,你可以缩放,如果你想,这给了一个稍微好一点的理解是怎么回事的自行调整向量。 首先创建一个条件函数中减去平均值,和通过标准偏差除以:
condition = @(x) (x-mean(x))./std(x); %Function to subtract mean AND normalize standard deviation
则相关似乎是(A_1 * A_2)/(A_1 ^ 2),如下所示:
(condition(A_1)' * condition(A_2)) / sum(condition(A_1).^2); %Returns 0.956766573975185
根据对称性,这也应该工作
(condition(A_1)' * condition(A_2)) / sum(condition(A_2).^2); %Returns 0.956766573975185
而且它。
我相信,但没有能量,现在确认,在相同的数学可以用于多dimensiotnal输入打交道时,只要小心处理的尺寸和方向时,计算相关和互相关条款输入阵列。