Finding an index from a 3D matrix
조회 수: 16 (최근 30일)
이전 댓글 표시
Hello,
I am writing to ask for help in finding the index of a point in a 3D array. I have a 3D matrix of dimentions [M,N,O] and I have reshaped it onto a 1xQ array (Q = M*N*O)
I'm trying to find the index in array Q of a point selected three dimensionally in the MNO matrix. This could easily be performed in 2D ith the 'sub2ind()' function, but I havent been able to do this in 3D.
I would apreciate any help.
Best,
Alonso
댓글 수: 0
채택된 답변
Dyuman Joshi
2023년 4월 20일
편집: Dyuman Joshi
2023년 4월 20일
sub2ind works for 3D arrays as well
%Initial array, with random values for example
in = reshape(1:105,3,5,7);
%Array reshaped into a row vector
out = reshape(in,1,[]);
%Random point in the 3D array
ix = randi(3)
iy = randi(5)
iz = randi(7)
linearindex = sub2ind(size(in), ix, iy, iz)
%Verifying the answer as our data is simply 1:numel(in)
in(ix, iy, iz)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!