我知道一个矩阵说mat
,如果我想删除满足特定条件的所有元素(例如元素),例如删除所有零,这将执行:
mat(mat == 0) = [];
但是我怎样才能以亚矩阵的方式做到这一点,即在给定条件下去除矩阵子矩阵元素。例如,data4d
是一个大小为n1 x n2 x n3 x n4
的4D矩阵。如果第四维的i
- th(1=<i<=n4
)子矩阵的所有元素,即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