在这里,我用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不过,我有一个问题,这段代码似乎不适用于非方阵。我做错了什么?谢谢。
发布于 2016-09-25 12:36:54
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时,此代码将无法工作。
https://stackoverflow.com/questions/39686375
复制相似问题