使用matlab中的rank查找矩阵的秩,发现该矩阵未满秩,由于是一个维度较大的矩阵,而下一步操作需要保证该矩阵是满秩的,所以想求问有没有什么方法能够查找导致未满秩的行或者列,然后我就可以考虑一些方法改进。。。。谢谢各位大虾
1条回答 默认 最新
- September1805 2018-07-25 06:39关注
解决思想:求出原矩阵的行向量组的极大无关组,然后用极大无关组组成的矩阵代替原行不满秩的矩阵即得到您想要的结果。
MATLAB代码如下:
M=size(H,1);
while rank(H)~=M %当构造出的H不是行满秩时,找出它行向量组的极大无关组组成newH代替H
[R,jb]=rref(H'); %结果中R为rref函数中目标矩阵的行阶梯最简矩阵,jb是一个向量,为目标矩阵的列极大无关组所在的列数。注意这里需要先将H转置,因为我们的目标是要求H的行向量组的极大无关组
newH=H(jb,:);
H=newH;
M=size(H,1);
end
亲测有效,望有用。解决评论 打赏 举报无用 6