qq_37469456 2017-11-09 23:58 采纳率: 7.1%
浏览 3062

matlab中如何去掉导致矩阵不满秩的行或者列

使用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
    亲测有效,望有用。

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题