【问题标题】:how do i delete certain rows in a Matlab matrix?如何删除 Matlab 矩阵中的某些行?
【发布时间】:2011-03-23 15:43:11
【问题描述】:

我有一个 4892 行 4 列的双精度矩阵。

假设我在第 3 列和第 4 列中有 N 行具有相同值(但不一定在第 1 列和第 2 列中),我想在组中只留下一行。

一个例子:

1738 1738 8611 8611

1739 1738 8611 8611

1739 1739 8611 8611

我想从这一堆中只留下一排(不管是哪一排)。

我该怎么做?

谢谢!

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    使用UNIQUE。默认情况下,这将保留 最后一行。

    %# array is your 4892-by-4 array
    %# call 'unique(array(:,3:4),'rows','first') if you want to keep the first row
    [~,idx] = unique(array(:,3:4),'rows');
    
    %# use sort if you want to preserve the original order of rows
    trimmedArray = array(sort(idx),:);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多