我希望将IF语句应用于如下矩阵:
A =
2 5 2 4 8
2 5 0 0 0
2 4 0 0 0
6 8 0 0 0
9 5 0 0 0
4 7 0 0 0
8 1 0 0 0
到目前为止我所拥有的是:
if A(1,2)>A(1,4),
A(2,3)=A(1,4);
A(2,4)=(A(1,5))+1;
end
if A(1,2)<A(1,4),
A(2,4)=(A(1,4))-1;
A(2,4)=(A(1,4))-(A(2,3));
end
在上述代码中,我只比较第一行的第2和第4列。 然后第一行构造第二行。
我希望比较第二行并使用它来构建第三行......依此类推...在所有7行中。
我可以添加1:n来修改它吗?
有什么建议吗?
答案 0 :(得分:1)
您可以编写以下循环
for i=1:size(A, 1)-1
if A(i,2)>A(i,4),
A(i+1,3)=A(i,4);
A(i+1,4)=A(i,5)+1;
end
if A(i,2)<A(i,4),
A(i+1,4)=A(i,4)-1;
% wrong index here? You assign twice to the same A entry.
% the above line has no effect...
A(i+1,4)=A(i,4)-A(i+1,3);
end
end