找回密码
 注册
关于网站域名变更的通知
查看: 1087|回复: 2
打印 上一主题 下一主题

请问在matlab中怎样去掉导致矩阵不满秩的行或列?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-16 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
使用matlab中的rank查找矩阵的秩,发现该矩阵未满秩,由于是一个维度较大的矩阵,而下一步操作需要保证该矩阵是满秩的,所以想求问有没有什么方法能够查找导致未满秩的行或者列,然后我就可以考虑一些方法改进。。。。谢谢各位大神( A: {' V/ ^$ c8 M9 u; ?

该用户从未签到

3#
发表于 2019-12-16 18:30 | 只看该作者
提供一个思路,希望对你有用:求出原矩阵的行向量组的极大无关组,然后用极大无关组组成的矩阵代替原行不满秩的矩阵即得到您想要的结果。
+ A" S  }5 d6 A" j" w' o1 FMATLAB代码如下:  Q' T5 M, \2 N9 i
M=size(H,1);
! M2 Z7 B: F. O/ Dwhile rank(H)~=M %当构造出的H不是行满秩时,找出它行向量组的极大无关组组成newH代替H/ ^0 J7 S6 W7 ]8 j' J/ V. x/ Z% L4 N
[R,jb]=rref(H'); %结果中R为rref函数中目标矩阵的行阶梯最简矩阵,jb是一个向量,为目标矩阵的列极大无关组所在的列数。注意这里需要先将H转置,因为我们的目标是要求H的行向量组的极大无关组
& y  K' d1 Y2 knewH=H(jb,: );
. j, Q) v. ]3 g) r1 E3 CH=newH;
/ R8 _$ k+ R2 GM=size(H,1);# W9 I" A' }3 T; b
end" ~" v. @# j( ~; l/ j& L, ~
亲测有效,望有用。

: O* |; t. g2 u& ^& z
; I6 R" ^$ V+ o4 G  T# h4 ^  F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 05:35 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表