Ich habe ein Array [2; 3]
und eine Matrix [ 1 3 4 5; 2 4 9 2]
. Nun möchte ich das zweite Element aus der ersten Zeile und das dritte Element aus der zweiten Zeile extrahieren und so [3 ; 9]
erhalten. Ich habe es geschafft, es mit einer Schleife zu machen, aber da ich mit viel größeren Arrays arbeite, möchte ich diese vermeiden.Extrahieren von Werten aus 2D-Array mit Indizes aus einem anderen Array (ohne Schleifen)
1
A
Antwort
4
Sie können sub2ind
verwenden jeden des Spalt Indizes zu konvertieren (zusammen mit ihrer Reihe subscripts) in ein linear index und dann, dass zum Index in der Matrix verwenden.
A = [1 3 4 5; 2 4 9 2];
cols = [2; 3];
% Compute the linear index using sub2ind
inds = sub2ind(size(A), (1:numel(cols)).', cols);
B = A(inds)
% 3
% 9
Alternativ können Sie die lineare Indizes selbst berechnen, die mehr performant sein wird als sub2ind
B = A((cols - 1) * size(A, 1) + (1:numel(cols)).');
% 3
% 9
2
Durch die diag
Funktion zu nutzen, können Sie eine elegante einzeilige Lösung erhalten:
A = [1 3 4 5; 2 4 9 2];
cols = [2; 3];
B = diag(A(:,cols))
% 3
% 9
Hier ist, was diag(A(:,cols))
tut:
A(:,cols)
wählt die Spalten voncols
A
mit Spaltek
vonA(:,cols)
entsprechend der Spalte voncols(k)
A
,[3 4; 4 9]
geben;diag
gibt die diagonalen Einträge dieser Matrix und damit an der Position zurückkehrtk
diek
-te Diagonalelement vonA(:,cols)
, dieA(k,cols(k))
ist.
Verwandte Themen
- 1. mit Werten aus anderen Array
- 2. Extrahieren von Werten aus Zeichenfolgen in einem Array mit Powershell
- 3. Extrahieren von Werten aus Array von Arrays
- 4. Extrahieren von Werten aus einem Array von Deferreds
- 5. Eine Teilmenge von Werten aus einem assoziativen Array (PHP) extrahieren
- 6. Wie wähle ich Elemente aus einem Array mit einem Array von Indizes mit Linq aus?
- 7. Extrahieren von Daten aus einem komplexen Array ohne viele FOR-Schleifen
- 8. Wie Indizes von Nicht-Null-Elementen aus ND-Array extrahieren?
- 9. Extrahieren von numerischen GPS-Werten aus Byte-Array mit PowerShell
- 10. Extrahieren von Werten aus AnyObject Dictionary in Array
- 11. Ersetzen Sie "0" Elemente in Array mit Werten aus anderen Array-Indizes und Reihenfolge
- 12. Aus Array von Wörterbüchern, Array mit Werten eines Schlüssels
- 13. Extrahieren von Werten aus einer Liste ohne regex
- 14. Ausgabe einer Mehrfachauswahl mit ausgewählten Werten aus einem Array?
- 15. Zurückgeben von Werten aus einem zweiten Array
- 16. Drucken von Werten aus einem PHP-Array
- 17. Extrahieren von Werten aus kommagetrennten Listen
- 18. Auswählen von Elementen aus dem Array entsprechend Indizes in einem anderen Array spezifiziert C#
- 19. Daten von Array aus einem anderen Thread
- 20. MongoDB Extrahieren von Werten aus BasicDBObject (Java)
- 21. Eindimensionales Array aus einem Multidimension-Array extrahieren
- 22. Extrahieren eines Array aus einem Array numpy
- 23. Extrahieren von Werten aus verschachtelten Listen
- 24. Extrahieren von Array aus JSON mit Swift
- 25. Extrahieren von Eigenschaften aus Array
- 26. Konstrukt Matrix aus Array Indizes
- 27. Erhalte Informationen von einem Array ohne Schleifen
- 28. Suchen Sie Indizes in einem Array, die einen Wert aus einem anderen Array enthalten
- 29. Wertefeld mit Indizes extrahieren
- 30. Extrahieren bestimmte Informationen aus einem Array