algorithm - 我如何将 IF 语句应用于矩阵的所有行(Matlab)

标签 algorithm matlab matrix vectorization

我希望将 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/

相关文章:

python - 用可能导致 nan 的 numpy 矩阵除法

iphone - CMAttitude 和 CATransform3D 是否与旋转矩阵相关?

c - C中使用指针的矩阵乘法

java - 如何从 4,000,000,000 个号码中获取最频繁的 100 个号码?

c++ - 算法:非铰接顶点

python - MatLab 到 Python 欧拉方程

matlab - 在 Matlab 中运行脚本时关闭所有图形

python - 给定无向图中的边,在最大化图的度数的同时限制最大图度的算法是什么?

algorithm - 以编程方式将数字序列拆分为 4 个相对相等的 block

java - 如何在 Matlab 中运行 java .jar