急求!!!有没有大神会用matlab编程(不用rank()函数来实现)来实现求矩阵的秩。必有重谢

如题所述

由于矩阵经有限次初等变换秩不变,且行阶梯形矩阵的秩就等于非零行的行数.因此考虑将矩阵化为行简化阶梯矩阵,确定其非零行数,即为原矩阵的秩.

clear
A=[2,3,1,-3,-7;1,2,0,-2,-4;3,-2,8,3,0;2,-3,7,4,3]
B=rref(A) %求A的行简化阶梯矩阵B
[m,n]=size(B);
while B(m,:)==0 %求B的非零行数
m=m-1;
end
m

A =
2 3 1 -3 -7
1 2 0 -2 -4
3 -2 8 3 0
2 -3 7 4 3

B =
1 0 2 0 -2
0 1 -1 0 3
0 0 0 1 4
0 0 0 0 0

m = 3

即R(A)=3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-17
你可以写一个逐行化简的程序。。。追问

关键是如何写逐行化简呢

追答

逐行化简就简单了吧,先扫描第一列,把第一列非0的某行移到第一行,然后剩余第一列非0的行都与第一行做行变换,是第一列只有第一行是非0的,以此类推,扫描完所有列后看有多少行非0就行了。
当然还要考虑一些特殊情况,比如某一列全是0。

追问

大哥,能帮忙写一下吗。