在这里,我在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
我有一个问题,这个代码似乎不适用于非方形矩阵。我究竟做错了什么?感谢。
答案 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