首页 > 解决方案 > 下面的matlab符号是什么意思?

问题描述

我想用python编写这个matlab代码,但我不知道LEV(1:n+1:n^2) = 0; 或 LEV(i,:) 表示。谁能解释一下这个符号是什么?谢谢!

function A = ILU_p(A,p)

n = length(A);
LEV = inf(n);
LEV(find(A)) = 0;
LEV(1:n+1:n^2) = 0;  

for i = 2:n   
    for k = 1:i-1  
        if LEV(i,k) > p
            continue
        end
        A(i,k) = A(i,k) / A(k,k);
        A(i,k+1:n) = A(i,k+1:n) - A(i,k) * A(k,k+1:n);
        LEV(i,k+1:n) = min([LEV(i,k+1:n); LEV(i,k) + LEV(k,k+1:n) + 1]);
    end
    A(i,find(LEV(i,:)>p)) = 0; 
end

标签: matlab

解决方案


下面设置要在索引中使用的值向量。如果 n=10 那么下面将产生一个行向量[1 12 23 34 45 56 67 78 89 100]

1:n+1:n^2

由于 LEV 设置为 nxn 矩阵,并且上述行向量选取对角线元素,即 LEV(1) = LEV(1,1)、LEV(12) = LEV(2,2) 等。

LEV(i,:) 是 MATLAB 用于引用第 i 行中所有列的简写。


推荐阅读