我试图在matlab中找到以下矩阵的总和[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语句,但我一直在收到错误。请帮忙
必须使用嵌套
我的代码:
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
答案 0 :(得分: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];
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
等进行硬编码,那么编写外循环是没有意义的。答案 1 :(得分:1)
我不会发布更正后的代码,而是会在您发布的代码中添加注释:
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
答案 2 :(得分:0)
为什么不使用sum()
?