Die Auswahl von Elementen aus einer matrix in matlab
Ich habe eine matrix, die ist 36 x 2, aber ich wollen, Sie zu trennen, die Elemente zu geben, die mich 18, 2 x 2-Matrizen von oben nach unten. E. g. wenn ich eine matrix:
1 2
3 4
5 6
7 8
9 10
11 12
13 14
... ...
Möchte ich aufteilen in separate Matrizen:
M1 = 1 2
3 4
M2 = 5 6
7 8
M3 = 9 10
11 12
..etc.
- Ich habe versucht, mit linearer Indizierung mit Dingen wie M(1,1) zu extrahieren, der das element in Zeile 1 Spalte 1. Und auch M(1:2), aber diese Extrakte ersten Zeile bis Spalte 2. in der Erwägung, dass muss ich extrahieren nach unten, d.h. wählen Sie einen 16 2 x 2-Matrizen aus einem 32 x 2-matrix. Ich glaube, ich könnte individuell wählen Sie die 4 Elemente der 2 x 2 matrix will ich weisen Sie Ihnen jeweils einen Namen und dann bilden die matrix von Ihnen, aber das würde zu lange dauern zu tun, für die 16 Matrizen.
- Die Antworten sind zu Komplex, außer mr_endres' die matrix die ich habe, ist diese:
Du musst angemeldet sein, um einen Kommentar abzugeben.
vielleicht der folgende Beispiel-code könnte hilfreich sein:
dann mit dem 3. index von b können Sie den Zugriff auf Ihre 18 2x2-Matrizen, wie zB. b(:,:,2) gibt der zweite 2x2 matrix.
Ich denke, dass die direkte Antwort auf deine Frage ist:
Diese schafft 18 Variablen namens 'M01' durch 'M18', mit Stücken, die
sampledata
matrix.Jedoch bitte verwenden Sie keine dynamischen Variablen-Namen wie diese. Es wird erschweren jedem anderen Stück code, der es berührt. Verwenden Sie einen cell-array ein 3D-array (vorgeschlagen von @Johannes_Endres +1 BTW), oder der Struktur. Alles, was beseitigt die Notwendigkeit für Sie, etwas zu schreiben, wie dies später auf:
Ich gesehen habe code wie das, und es ist langsam und extrem umständlich zu pflegen, nicht zu schweigen von den Kopfschmerzen und Schmerzen, um Ihre innere Schönheit-Zähler.