更快或更智能的方式来排序和交叉大量数据?

时间:2014-02-17 14:43:01

标签: matlab sorting intersect

我在我的Matlab代码中使用“intersect”进行排序,我想要以下内容:

[ch] = sort(s, 'ascend'); 

[same, a] = intersect(s, ch); 

例如:

输入:

s = [55 21 78 7]

输出:

ch = [7 21 55 78]
a = [4 2 1 3]

我需要访问a,其中a在排序之前显示原始索引,以便我可以将其用于进一步处理。

这种方法与我想要的完全一样,但我想这需要花费大量时间进行排序和交叉等,特别是当s的大小接近100或更高时,是否有更快或更智能的方式这样做?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用

实现此目的
[ch IX] = sort(s, 'ascend') 

其中IXa相同。