how to index a matrix by using a index matrix that has same size?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a m by n data matrix and a m by n index matrix which rearranges the order of the n elements in each row of the data matrix. How can I get an indexed data matrix without using loop? Thanks.
1 Kommentar
Akzeptierte Antwort
Walter Roberson
am 30 Mär. 2013
Bearbeitet: Walter Roberson
am 30 Mär. 2013
Use sub2ind()
3 Kommentare
Walter Roberson
am 30 Mär. 2013
Oops, yes, I was concentrating on not putting an "s" in and so left out the "2" :(
Cedric
am 30 Mär. 2013
I thought that you had forgotten the "s" and I ended up realizing that it was a "2" ;-)
Weitere Antworten (2)
Anand
am 30 Mär. 2013
If A is your original matrix and idx is the matrix of indices, you can use logical indexing: A(idx).
Here's an example:
>> A = rand(3)
A =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> idx = [9 8 7;6 5 4;3 2 1]
idx =
9 8 7
6 5 4
3 2 1
>> A(idx)
ans =
0.9575 0.5469 0.2785
0.0975 0.6324 0.9134
0.1270 0.9058 0.8147
1 Kommentar
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!