2017-03-17 58 views
0

Assum我有邏輯值MxN的矩陣:在這種情況下M = N = 5傳遞一個矩陣的特定值USI邏輯掩模

mask=[0 0 0 0 0; 
    0 1 1 0 0; 
    0 1 1 0 0; 
    0 0 0 0 0; 
    0 0 0 0 0]; 

。 尺寸爲「MxNx3」(RGB圖像)的第二個矩陣A。我想通過一個A相對於掩碼的函數值。例如不在面膜的部分的所有值:

foo(A(~mask)); 

當然這行代碼是無用的,因爲mask給我只有RGB顏色之一的指標。

  • 什麼是正確的方法來做到這一點?
  • 我可以逃脫一條線嗎?

回答

1

您可以使用repmat在第三維重複您的面具3次。這將創建一個nnz(~mask) * 3元素向量。您可以重塑repmat操作的結果使得行是在你的面具的true元素和列第三維

foo(reshape(A(~repmat(mask, [1 1 3])), [], 3)) 

你也可以做類似this answer來完成類似的東西。