Indexing 3D matrix with three 1D vector
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Xin
el 13 de Jun. de 2017
Respondida: Star Strider
el 13 de Jun. de 2017
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 comentarios
Respuesta aceptada
Star Strider
el 13 de Jun. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!