2

我希望将 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 来修改它吗?

有什么建议么?

4

1 回答 1

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
于 2012-09-22T19:23:08.223 回答