Ich versuche, Spalten von Matrizen (in 2D) aus einer Reihe von gegebenen Indizes (in 3D) zu extrahieren, ohne die 2D-Matrix in 3D zu konvertieren, um effizient Speicher (ich bin Umgang mit sehr großen Daten), kann ich das erreichen? Ich werde die 2D-Matrix für jedes Stück der 3D-Matrix wiederverwenden, aber ich weiß einfach nicht, wie ich es machen soll. Beispielcode:Extrahieren Spalte Spalte von Matrizen aus einem 3D-Index
A=rand(9,100); %The matrix that will be reused
B=randi([1 100],[1 100 30]); %the indices
Extracted=A(:,B); %this part I can't seem to solve it yet
Erwartete Ausgabe von Extracted
würde 9x100x30
sein. Irgendwelche Ideen Jungs? Danke im Voraus!
Mit dem ersten Verfahren wird die Ausgabe von 'Extracted' wäre' 1x100x30', es verpasst, die anderen acht Reihen though. –
@GregorIsack Wenn 'B's Elemente lineare Index sind, so passiert es nicht. – OmG
Verstanden, danke! –