1
我知道一個矩陣如mat
,如果我想刪除滿足一定條件的所有元素(元素方式),例如刪除全部爲零,這將做到:如何去除給定條件下的矩陣子矩陣元素?
mat(mat == 0) = [];
但我怎麼可以這樣子矩陣明智的,即除去給定的條件矩陣子矩陣元素。舉例來說,data4d
是一個尺寸爲n1 x n2 x n3 x n4
的4D矩陣。如果第四維的i
子矩陣的所有元素(即data4d(:, :, :, i) == zeros(n1, n2, n3)
)將被去除,即data4d(:, :, :, i) = []
。
我怎樣才能做到這些沒有簡單的for
循環?無論是以下兩個版本將無法正常工作:
data4d(data4d == zeros(n1, n2, n3)) = []; // version 1
data4d(data4d == zeros(n1, n2, n3, 1)) = []; // version 2