Я знаю, что для матрицы говорят mat
, если я хочу удалить все элементы (по элементам), которые удовлетворяют определенным условиям, например. удалить все нули, то это будет делать:Как удалить матричные элементы подматрицы при заданных условиях?
mat(mat == 0) = [];
Но как я могу сделать это подматрицы-мудры, то есть удалить матричные суб-матричные элементы, приведенные условия. В качестве примера data4d
представляет собой 4D-матрицу размером n1 x n2 x n3 x n4
. Если все элементы подматрицы i
-го (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