我有一个矩阵A,其大小为54x100。对于某些特定条件,我在A的每一行上执行一个操作。我需要保存此for循环的输出。我尝试过以下但是没有用。
S=zeros(54,100);
for i=1:54;
Ri=A(i,:);
answer=mean(reshape(Ri,5,20),1);
S(i)=answer;
end
答案 0 :(得分:0)
首先,根据您的问题判断我会推荐一些基本的Matlab教程,例如this,或者只是详细的文档,例如this。
实际上可以帮助您解决问题;你可以这样做:
%% Make up A (since I don't know what it actually is)
n = 54; m = 100;
A = randn(n,m); % N x m matrix of random numbers
%% Loop over each row of A
S = cell(n,1);
for j = 1:n;
Rj = A(j,:); % j'th row
answer = mean(reshape(Rj,5,20),1); % some operation
S{j} = answer; % store the answer in cell S
end
问题是你的答案不是单个数字(1x1矩阵)而是矢量,所以你得到了一个尺寸不匹配错误。上面我将answer
s放入大小为n的单元格对象中。然后,可以通过调用S{j}
来检索第j行操作的结果。
此外:
i
作为迭代器不,因为它也代表虚构单位。n
,而不是仅仅编写for j = 1:54
,否则,如果我喜欢将我的代码用于53x100数组,它将不再起作用。 A
的内容,例如。