Como criar um vetor de valores de célula a partir de várias matrizes 3D

0

Atualmente estou tentando fazer uma coisa no matlab. A situação é simples: Eu tenho cerca de 70 matrizes tridimensionais do mesmo tamanho (192 x 192 x 30). O que preciso obter são vetores criados a partir de valores do mesmo índice dessas matrizes. Será mais fácil fornecer um exemplo simples (com matrizes 2D):

Paraocasode70matrizes3D(deumtamanho:192x192x30),asaídaseriaumamatrizcom70colunase192x192x30linhas.Euestouquerendosabersobreasoluçãomaissimplespossível,trabalhandoapenascommatrizesesemloops.Asoluçãofinalnocasode70matrizesseriaparecidacom:

Obrigado em conselhos por qualquer ajuda. Estou ciente de que a solução no matlab é provavelmente muito simples, mas eu tive um problema para encontrá-la.

Saudações!

    
por Piotr Kopczyński 23.02.2017 / 19:39

1 resposta

0

Bem, eu mesmo encontrei uma solução. Um pouco diferente, mas para o meu propósito é ainda melhor e torna algumas coisas mais simples. Vou precisar apenas de valores não negativos. Portanto, primeiramente eu crio um array lógico de células, que são não nulas.

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
    
por 23.02.2017 / 21:53

Tags