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
进行回归,而我只是尝试使用回归来重建时间序列。
答案 0 :(得分: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