1
bsxfun(@times,RegressIndexFlux.(IndexNames{i}).(FluxNames{j}), Indices.(IndexNames{i}));

所以我的代码在上面。

bsxfun 的问题是我收到以下错误消息:

Error using bsxfun
Non-singleton dimensions of
the two input arrays must
match each other.

所以这里的问题是:如果可能的话,有没有办法让我通过时间序列转换 180x360 数组而不必使用 for 循环?(我在这里使用了许多 180x360 数组的结构)。基本上RegressIndexFlux是针对时间序列回归的Indices,我试图通过仅使用回归来重建时间序列。

4

1 回答 1

2

您不能有不匹配的非单件维度。置换第二个论点。假设A是一个m-by-n矩阵并且B是一个 ( p-by-1) 列向量:

A = rand(6,5); B = rand(4,1);
% m-by-n @times 1-by-1-by-p => m-by-n-by-p
C = bsxfun(@times,A,permute(B,[3 2 1]));
size(C)
ans =
     6     5     4
于 2013-11-11T23:59:33.230 回答