Matlab 仅在间隔内保留具有最大元素的矩阵行

Matlab 仅在间隔内保留具有最大元素的矩阵行,matlab,Matlab,我有一个矩阵,其中最右边的元素按降序重复YYMMDD日期,例如: 40 1630 1711 20140326 169 700 950 20140326 40 1630 1711 20140326 169 700 950 20140327 40 1630 1711 2

我有一个矩阵,其中最右边的元素按降序重复YYMMDD日期,例如:

      40        1630        1711    20140326
     169         700         950    20140326
      40        1630        1711    20140326
     169         700         950    20140327
      40        1630        1711    20140327
     169         700         950    20140327
      40        1630        1711    20140327
     169         700         950    20140328
      40        1630        1711    20140328
     169         700         950    20140328
      40        1630        1711    20140328
    3049         700         950    20140331
      40        1630        1711    20140331
    3049         700         950    20140331
      40        1630        1711    20140331
     169         700         950    20140401
      40        1630        1711    20140401
     169         700         950    20140401
      40        1630        1711    20140401
     169         700         950    20140402
      40        1630        1711    20140402
在每个日期内,我只想保留对应于最大元素的行 在最左边的列中。因此,我想制作一个新的矩阵:

     169         700         950    20140326
     169         700         950    20140327
     169         700         950    20140328
    3049         700         950    20140331
     169         700         950    20140402
最好的方法是什么

想法:使用diff查找日期更改时的索引,并使用for循环循环使用max查找正确的行。任何没有for循环的解决方案?

尝试首先基于第一列,然后基于最后一列查找第一列:

B = sortrows(A)
[~, ia] = unique(B(:,4))
B(ia,:)
ans =
        169        700        950   20140326
        169        700        950   20140327
        169        700        950   20140328
       3049        700        950   20140331
        169        700        950   20140401
        169        700        950   20140402

只有通过包含最后一行(编辑),您才能大幅提高此问题的质量。没有它,你似乎根本没有考虑过这一点。试着记住在以后的问题中总是这样做,否则他们可能会很快被否决或否决。包括您尝试的代码更好。=)好的:-)我只在网上测试过,不需要在那里翻转(奇怪)。可能是
-sortrows(-A)
更快(但我不确定)。很高兴我能提供帮助:-)@Divakar,谢谢=)回滚到了第一个版本,这似乎毕竟是正确的。在OP的评论之后,我盲目地改变了它。@RobertP。哈哈,这是真的!我用一些
bsxfun
方法实现了这个,但是比你的方法要长一点。用
sortrows
来表达你的想法!