用嵌套矩阵求和的MATLAB
我试图在matlab中找到以下矩阵的和[1 1;1 2 1 2;4 5 3 2;1 3 2 4;10 11 1;90 9 2 1] 我正试图使用嵌套的for语句来执行此操作,但我不断收到错误。请帮忙 必须使用嵌套的 我的代码:用嵌套矩阵求和的MATLAB,matlab,Matlab,我试图在matlab中找到以下矩阵的和[1 1;1 2 1 2;4 5 3 2;1 3 2 4;10 11 1;90 9 2 1] 我正试图使用嵌套的for语句来执行此操作,但我不断收到错误。请帮忙 必须使用嵌套的 我的代码: A = [1 1 1 1; 1 2 1 2; 4 5 3 2; 1 3 2 4; 10 11 1 1; 90 9 2 1]; for j=1:4, for i=1:6, sum = A(j,:)+A(j+1,:)+A(j+2,:) end end 为什么
A = [1 1 1 1; 1 2 1 2; 4 5 3 2; 1 3 2 4; 10 11 1 1; 90 9 2 1];
for j=1:4,
for i=1:6,
sum = A(j,:)+A(j+1,:)+A(j+2,:)
end
end
为什么不直接使用?您需要更改以下代码:
A = [1 1 1 1; 1 2 1 2; 4 5 3 2; 1 3 2 4; 10 11 1 1; 90 9 2 1];
for j=1:4,
for i=j:6,
sum = A(j,:)+A(j+1,:)+A(j+2,:);
end
end
为此:
A = [1 1 1 1; 1 2 1 2; 4 5 3 2; 1 3 2 4; 10 11 1 1; 90 9 2 1];
sum = 0;
for j=1:4,
for i=1:6,
sum = sum + A(j,i);
end
end
注意各种修改:
sum=0
。如果你在解释器中使用这个,你将从前面的结果开始,保证你没有得到正确的结果j+1
,j+2
等,那么编写外部循环没有意义我不会发布更正后的代码,而是会在您发布的代码中添加注释:
A = [1 1 1 1; 1 2 1 2; 4 5 3 2; 1 3 2 4; 10 11 1 1; 90 9 2 1];
% you are missing sum initialization here - you should first set sum to zero
for j=1:4, % there is no comma needed at the end
for i=j:6, % you want to iterate all the rows, from 1 to 6
sum = A(j,:)+A(j+1,:)+A(j+2,:) % you should be adding to the sum - i.e sum is sum + current field A(j, i)
end
end
@阿尔贝托:好的!然后请编辑您的问题并添加该事实。此外,请将你的问题标记为“家庭作业”;对于j=1:4,对于i=j:6,sum=A(j,:)+A(j+1,:)+A(j+2,:)end-end为什么你的
i
循环从j:6
开始,而不是1:6
?您是否注意到每次迭代都会重新计算sum
(覆盖上一次迭代的值)?使用sum作为变量名是一个非常糟糕的选择。啊,我看到您只是简单地修复了代码:)那么,Alberto可以忽略我的答案。很抱歉!我发现代码块之外的注释更具可读性,不过:-)另外,不应该使用与函数名等效的变量名,例如sum