2017-03-03 55 views
2

我有2個包含來自同一座標系的X,Y,Z值的多維雙列數組。查找兩個多維雙列陣之間的差異

我想比較陣列,並提取不同的點到一個新的 數組/列表。我試過For循環,但速度很慢。

是否有更快的解決方案來實現我的範圍?

陣列格式:

double [100000,3] array1;-->Columns represt X-Y-Z 

double [150000,3] array2;-->Columns represt X-Y-Z 

這裏謝謝

+1

你能證明你試過了嗎? – pinkfloydx33

+0

那麼,循環似乎是最好的方式。而對於更大的陣列,它必然需要時間。 –

回答

2

你的問題是,你認爲你需要一些神奇的算法做的更好,但你已經在正確的軌道與for循環上。

而對於你的陣列的大小,這是預定是一個長期的任務。

因此,要優化你可以使用你的for循環的表現,你只需要像使用它平行:

Parallel.ForEach(GetMultipleChunksFromArray(yourArray, yourOtherArray), (chunks) => 
{ 
    //your forloop goes here 
    for (int i = 0; i < chunks.firstArrayChunk.Length; i++) { 
     //comparing logic 
    } 
} 

對於結果,你需要小心一點,因爲你正在運行多個並行compareoperations你需要有一個線程安全的結果,像一個並行字典,其中添加了所有的差異。

+0

我認爲平行會減少時間。我是編程新手,所以我有想法,但對我來說並不容易。 –

相關問題