2014-02-17 26 views
0

我所用 「交叉」 在我的Matlab代碼做的,我想以下排序:更快或更聰明的方式來排序和相交大量的數據?

[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

您可以

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

其中IX是相同的a實現這一目標。