В настоящее время я пытаюсь сделать одну вещь в Matlab. Ситуация проста: у меня около 70 трехмерных матриц одинакового размера (192 х 192 х 30). Мне нужно получить векторы, созданные из значений одного и того же индекса из этих матриц. Будет проще представить вам простой пример (с 2D матрицами):

Простой пример желаемого решения

Для случая 70 трехмерных матриц (размером: 192x192x30) на выходе будет матрица с 70 столбцами и 192x192x30 строками. Мне интересно самое простое решение, работающее только с матрицами, а не для циклов. Окончательное решение в случае 70 матриц будет выглядеть так:

Желаемый вывод

Спасибо в советах за любую помощь. Я знаю, что решение в Matlab, вероятно, очень простое, но у меня возникла проблема с его поиском.

Привет!

1 ответ1

0

Ну, я нашел решение сам. Немного по-другому, но для моей цели это даже лучше и делает некоторые вещи проще. Мне понадобятся только неотрицательные значения. Поэтому сначала я создаю логический массив ячеек, которые не равны нулю.

function output = createMatrixFromFrames(inputFrames, roiFrame)
numberOfFrames = length(inputFrames);
logicalRoiArray = roiFrame~=0;
output = inputFrames(1).img(logicalRoiArray)
for frameIndex = 2:numberOfFrames
    output = [output inputFrames(frameIndex).img(logicalRoiArray)];
end

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .