Indexing a 3d matrix with a 2D matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have a logical mask of locations I want to image. I am using bwconncomp to get the indices of the pixels in each of these objects. What I can't figure out is how to take this information and pull out the 3 dimensional vector for each of these pixels from my larger 3d matrix. I thought I could use ind2sub to convert the pixel locations then do something like the following, but this did not work.
I can solve this with a for loop and just loop through each plane of my 3d matrix, but there must be a more elegant solution out there. Thanks for any advice.
[pixelSubs(:,1),pixelSubs(:,2)]=ind2sub(cc.PixelIdList{objectNum});
threeDVectors=threeDMatrix(pixelSubs(:,1),pixelSubs(:,2),:);
0 comentarios
Respuestas (1)
Walter Roberson
el 20 de Ag. de 2016
idx = cc.PixelIdList{objectNum};
pane_size = size(threeDMatrix,1) * size(threeDMatrix,2);
threeDVectors(:,1) = ThreeDMatrix(idx);
threeDVectors(:,2) = ThreeDMatrix(idx + pane_size);
threeDVectors(:,3) = ThreeDMatrix(idx + 2 * pane_size);
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!