问题描述
|
是否有可能使用排序功能实现与使用排序行相同的功能。我的矩阵有超过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
的原因。