Extract data from matrices and arrays using vectors of coordinates

70 visualizaciones (últimos 30 días)
I have a matrix and I want to use two vectors of row and column index coordinates in order to extract the elements from it. In particular, I can define a 3 x 3 matrix as
A = [1 2 3; 3 4 5; 8 9 10]
And I want to use two vectors to extract the elements (2,2), (3,1), (1,3). My intention is to do this using the vectors for each corrdinates. I have been trying to do it by writing
A([2 3 1], [2 1 3])
but of course this is not working. I believe that this is a basic sintax issue.
Thank you so much

Respuesta aceptada

the cyclist
the cyclist el 28 de Sept. de 2021
Editada: the cyclist el 28 de Sept. de 2021
Use the sub2ind function to convert the subscripts to a linear index into the matrix.
Using your example:
A = [1 2 3; 3 4 5; 8 9 10]
A = 3×3
1 2 3 3 4 5 8 9 10
linearIndex = sub2ind(size(A),[2 3 1], [2 1 3])
linearIndex = 1×3
5 3 7
A(linearIndex)
ans = 1×3
4 8 3

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by