微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Matlab中进行sort vs sortrows

如何解决在Matlab中进行sort vs sortrows

| 是否有可能使用排序功能实现与使用排序行相同的功能。我的矩阵有超过400万行,由于迭代,排序行带来了很多延迟。 (矢量化方法将不胜感激)
%Col1 -> date,Col2 -> id,Col3 -> ranking within each date-group (to help you debug)
data = [ ...
       734614 5 3; 734615 6 5; 734622 1 1; 734615 1 1; 734615 4 3; 
       734622 2 2; 734622 4 3;   734615 3 2; 734615 5 4; 734614 3 2; 
       734614 1 1; 734622 8 4; 734622 9 5;] ;

sortedanswer = 
  734614           1           1
  734614           3           2
  734614           5           3
  734615           1           1
  734615           3           2
  734615           4           3
  734615           5           4
  734615           6           5
  734622           1           1
  734622           2           2
  734622           4           3
  734622           8           4
  734622           9           5
谢谢!     

解决方法

        你可以这样做
[~,indx]=sort(data(:,1));
sortedanswer=data(indx,:)

sortedanswer =

      734614           5           3
      734614           3           2
      734614           1           1
      734615           6           5
      734615           1           1
      734615           4           3
      734615           3           2
      734615           5           4
      734622           1           1
      734622           2           2
      734622           4           3
      734622           8           4
      734622           9           5
请注意,它是按第一列中的行排序的。行的顺序与原始
data
中的顺序相同,这就是为什么您在我的第一行的第二和第三列中看到
5   3
的原因。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。