Indexing 3D matrix with three 1D vector
1 view (last 30 days)
Show older comments
I have a 3D matrix, say A=100*100*100. I want to index 5 elements from it. What I have are three 1D vector (lenght=10), say x=[1,1,2,3,4] y=[55,22,33,55,77] z=[92,32,12,9,2]. I want to index the corresponding elements in the matrix A. Say [1,55,92] [1,22,32] [2,33,12] [3,55,9] [4,77,2]. Is there a very elegant way to index these five elemtents in one sentence?
0 Comments
Accepted Answer
Star Strider
on 13 Jun 2017
I would use the sub2ind (link) function. I am not certain you could do it in one line, but you can get close.
Example —
M = randi(99, 4, 4, 3);
LinIdx = sub2ind(size(M), [1 2], [3 4], [2 3]);
Result = M(LinIdx);
0 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!