Matlab编程行梯形矩阵

时间:2016-09-25 11:38:06

标签: matlab matrix

在这里,我在matlab中编写了一个代码,用于将矩阵缩减为行梯形式

function A = myrref(A)

[m,n]=size(A);

for j=1:m

    A(j,:) = A(j,:)/A(j,j);

    for i = 1:n
        if j < i
        A(i,:)= A(i,:)- A(j,:)*A(i,j);
        end
    end
end

我有一个问题,这个代码似乎不适用于非方形矩阵。我究竟做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

i是行索引,必须小于或等于m,而不是n; j不应超过列数:

for j=1:min(m,n)
A(j,:) = A(j,:)/A(j,j);
    for i = j+1:m
        A(i,:)= A(i,:)- A(j,:)*A(i,j);
    end
end

另请注意,当A(j,j)等于0

时,此代码无效