【发布时间】:2015-08-07 09:55:20
【问题描述】:
我尝试在 Matlab 中使用 sortrows 函数。有没有什么方法可以使用这个函数或任何想法根据矩阵列元素的频率对矩阵的行进行排序。
举个例子:我有这个矩阵
matrix = [1 3 1;
1 4 2;
2 5 4;
3 2 3;
5 5 4;
5 3 3;
4 3 2;
4 2 3;
3 6 4;
2 4 3];
我想得到类似的东西:
sorted_based_on_3rd_col = [2 4 3;
3 2 3;
4 2 3;
5 3 3;
2 5 4;
3 6 4;
5 5 4;
1 4 2;
4 3 2;
1 3 1]
根据第三列最频繁的元素排序。 感谢您的帮助!
【问题讨论】:
-
同一个号码的顺序怎么选?
sorted_based_on_3rd_col的前 4 件商品是如何订购的? -
@AnderBiguri 实际上这个输出没有差异。我想我以后可以按第一列或第二列对它们进行排序。对吗?
-
你不能告诉算法“然后用这个做任何你想做的事”。选择您希望他们订购的方式!
-
可能类似于accumarray,然后构造第四列,其中包含对 accumarray 的查找,按第四列排序,然后删除第四列。 (抱歉没有代码。)
-
@AnderBiguri 好的。前 4 项应根据第一列升序排序。
标签: arrays matlab sorting matrix