我希望将 IF 语句应用于如下矩阵:
一个=
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 来修改吗?
有什么建议吗?
最佳答案
你可以写出下面的循环
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
关于algorithm - 我如何将 IF 语句应用于矩阵的所有行(Matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546663/