Моей изначальной целью было поиграть с парой матриц. Это просто, и я объясняю это для 2D-матриц ниже:
Учитывая определенную матрицу Matrix1 как:
и двоичную матрицу Matrix2 следующим образом:
, я хочу выделить элементы из Matrix1 в Matrix2 так, чтобы у меня была окончательная матрица Matrix3, которая выглядит так:
У меня сработал следующий лайнер:
(Matrix3 = zeros(eltype(Matrix1),size(Matrix2)))'[Matrix2'[:]] .= Matrix1'[:]
Теперь мне нужно расширить его на более высокие размеры, т.е. 3D или более. Итак, предположим, что матрица Matrix1 имеет размерность (4,6,6), а двоичная матрица Matrix2 имеет размерность (4,12,12). Проблема распределения остается прежней. Как тогда вы подойдете к этому? Может ли кто-нибудь помочь мне в этом (желательно с одним лайнером)? Обратите внимание, что для обеих матриц размер первого измерения здесь одинаковый, в данном случае 4. В остальных двух измерениях по отдельности обе матрицы квадратные.