多维数组Matlab关联



我有一个名为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{:});

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

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

据我所知,您想要做50x120=6000个相关性,每个相关性都是a的1x185子集与b的所有子集之间的相关性。如果这是真的,您需要为每个相关性调用corr

试试arrayfun(@(i) corr(Ap(i,:),B), 1:size(Ap,1)),其中Ap = reshape(A, [], size(A,3) .

相关内容

  • 没有找到相关文章