0
我在Matlab中工作,我有一個未排序的向量X。然後我通過取隨機塊從X中提取一個隨機子集,並將子集表示爲Y。例如,我們可以有Y = X([1:3,10:12,16:18])。每次在for循環中隨機提取矢量和Y,並且在對其執行進一步工作之前需要對其進行排序。下面是一些僞代碼:從排序的向量中排序塊子集
X=vector;
Z=zeros(1000,1);
for k=1:1000
randomblocks=... % obtain the random blocks
Y=X(randomblocks);
Ysort=sort(Y);
Z(k)=dosomething(Ysort);
end
這會變得非常慢,由於重複的排序。我的問題是有什麼方法,我們可以在for循環之前排序X,但在for循環中以某種方式提取相同的點,以便它們排序?我不能只將X的排序版本的隨機子集作爲排序X廢除塊結構。我嘗試了一些方法,但他們最終變慢了。
雖然這不會導致相同數量的總分類嗎?處理時間的瓶頸在於排序功能的多次調用。看來這種方法不能解決這個問題。 – KMoon
這種方法將使用排序函數的單個調用交換排序函數的多個調用,並有機會進行並行處理。 1000個函數調用的開銷很大,以並行方式定義問題爲MATLAB提供了最佳優化機會。 –