多维数组Matlab相关性

时间:2015-07-28 01:12:47

标签: matlab multidimensional-array correlation

我有一个名为A的矩阵50x120x185,其中50x120是一系列纬度和经度坐标,185是经过时间的坐标。 另一个变量1x185和我需要通过第三维时间(185)将此变量与矩阵的每个坐标相关联。

A =(50,120,185)

B =(1 2 3 4 5 ..)

我尝试使用以下代码重塑A:

D = reshape(A,[],size(A,3));

但是当我试图关联

G = corr2(D',B');

我收到了错误

Error using corr2>ParseInputs (line 39)
 A and B must be the same size.
 Error in corr2 (line 21)
 [a,b] = ParseInputs(varargin{:});

有没有人知道一种不同的方法来让我的代码将B与每个纬度和经度相关联到A的第三维?

值得注意的是A有很多NaN的

1 个答案:

答案 0 :(得分:0)

根据我的理解,你想要做50x120 = 6000的相关性,每个相关性是A的1x185子集与B之间的相关性。如果这是真的,你需要调用corr每个相关性。

尝试使用arrayfun(@(i) corr(Ap(i,:),B), 1:size(Ap,1))Ap = reshape(A, [], size(A,3)