Matrix in ein Zellenarray in Matlab umwandeln
Wer in Matlab mit Matrizen hantiert und diese in Zellenarrays konvertieren möchte, findet in der Funktion num2cell() einen äußerst nützlichen Helfer.
num2cell(M)
Diese Funktion nimmt eine Matrix oder einen Vektor (M) als Eingabe und wandelt sie in ein entsprechendes Zellenarray um, das dieselben Daten wie die Ursprungsmatrix enthält.
Das Argument M in dieser Funktion kann sowohl eine Matrix als auch ein Vektor (Array) sein.
Beachten Sie, dass manche den Einsatz von mat2cell() empfehlen könnten. Ich persönlich finde jedoch, dass das Ergebnis nicht ganz identisch ist.
Ein praktisches Beispiel soll dies verdeutlichen:
Stellen Sie sich eine 2x3 Matrix mit zwei Zeilen und drei Spalten vor. In Matlab könnten Sie diese Matrix wie folgt erstellen:
>> M=[1 2; 3 4; 5 6]
M =
1 2
3 4
5 6
Um diese Matrix nun in ein Zellenarray umzuwandeln, geben Sie einfach num2cell(M) ein.
>> A=num2cell(M)
A =
{
[1,1] = 1
[2,1] = 3
[3,1] = 5
[1,2] = 2
[2,2] = 4
[3,2] = 6
}
Dies konvertiert Ihre Matrix in ein Zellenarray, wobei jede Zelle einen einzelnen Datenpunkt der Matrix enthält.
Als Alternative können Sie die Funktion mat2cell() verwenden und dabei die Anzahl der Zeilen und Spalten der Matrix spezifizieren.
Zum Beispiel könnten Sie mat2cell(M,3,2) eingeben:
>> C=mat2cell(M,3,2)
C =
{
[1,1] =
1 2
3 4
5 6
}
Dies erzeugt ebenfalls ein Zellenarray, jedoch wird die gesamte Matrix in einer einzigen Zelle gespeichert.
So gelingt Ihnen mühelos die Umwandlung von Matrizen in Zellenarrays in Matlab mittels der Funktion num2cell().