double indexing
127 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Frank
el 12 de En. de 2012
Comentada: Petter
el 11 de Jul. de 2023
Hello,
is it possible to do double or multiple indexing in matlab? E.g.
>> v = [1,2,5,7,9]
v =
1 2 5 7 9
>> v(1:4)
ans =
1 2 5 7
>> v(1:4)(2:3)
ans =
2 5
The first index create a new vector and the second index creates a new vector out of the newly created one. It is common in other languages, and it helps to avoid defining temp variables.
Cheers, Frank
0 comentarios
Respuesta aceptada
Walter Roberson
el 12 de En. de 2012
The closest you can get is
subsref(V(1:4), struct('type', '()', 'subs', 2:3)))
You can follow {} referencing by () referencing, {}(), but you cannot use ()() or (){} or ().{} or ().(), and you cannot use function(){} or function()() or function().field
2 comentarios
Petter
el 11 de Jul. de 2023
"You can follow {} referencing by () referencing, {}()"
This one line made my day so much easier, greatly appreciated. Thumbs up, gold star.
Más respuestas (2)
mklcst mklcst
el 23 de En. de 2014
I think it could be very useful to have a short way to perform double indexing.
0 comentarios
Jos (10584)
el 23 de En. de 2014
If the indices are stored in variables, this is trivial!
V = [1,2,5,7,9]
ii = 1:4
jj = [2 3]
out = V(ii(jj))
1 comentario
lee eugene
el 2 de Ag. de 2019
However, if the two index do not have the same starting indexing, there would be something wrong. For example, i would like to select index [2,4] from [1,2,5,7,9] at first, and then select index [1,2]. Then it would be [2,5,7] at first and [2,5] in the end.
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!