|
提供一个思路,希望对你有用:求出原矩阵的行向量组的极大无关组,然后用极大无关组组成的矩阵代替原行不满秩的矩阵即得到您想要的结果。
. `/ Q+ @! N, w! N" wMATLAB代码如下:5 I6 y$ a' b4 G; T! Q9 _% m8 _
M=size(H,1);
" S' h @" F5 f- a- n. ?- L" U0 dwhile rank(H)~=M %当构造出的H不是行满秩时,找出它行向量组的极大无关组组成newH代替H
4 f, R C# k. F6 h6 h" r! c0 N[R,jb]=rref(H'); %结果中R为rref函数中目标矩阵的行阶梯最简矩阵,jb是一个向量,为目标矩阵的列极大无关组所在的列数。注意这里需要先将H转置,因为我们的目标是要求H的行向量组的极大无关组5 g r. B2 [" V8 b$ p2 p( T) g, C
newH=H(jb,: );3 Y+ E4 z) H# Y% U- [9 r6 A6 W2 A' ?
H=newH;# H5 a9 Y) P7 t0 N
M=size(H,1);
. B3 n, U3 C0 k8 @2 ]* f, @end- x% z/ J1 ^& P
亲测有效,望有用。
& X, P# @* _, W
2 j/ R( u/ @0 V |
|