2017-03-26 2 views
1

Ich versuche, Matlab in den Griff zu bekommen, also ist diese Frage mehr Syntax als alles andere.Wie mache ich ein Matrix-Array (in verschiedenen Größen)

Ich möchte einen Vektor (1xn) von Matrizen erstellen. Die Matrizen haben alle möglicherweise unterschiedliche Dimensionen, z. Matrix 1 = 4 x 5-Matrix 2 = 5 x 6 usw.

I unter Verwendung eines for-Schleife versucht, aber ich hatte folgende Fehler:

subscripted Zuweisungsdimension Mismatch.

+4

Sie können [Zellenfelder] (https://www.mathworks.com/help/matlab/cell-arrays.html) – rahnema1

Antwort

1

Sie können ein Array von Matrizen unterschiedlicher Größe als cell array von Matrizen speichern. Oft möchten Sie diese Zellenarrays dynamisch mit der Funktion arrayfun erstellen, die dies für Sie erledigt, wenn Sie die Option UniformOutput auf 0 setzen.

Beispiel:

cols = [4 5 6]; 
rows = [1 2 3]; 
A = arrayfun(@(i) zeros(rows(i),cols(i)),1:3,'UniformOutput',0); 
A{:} 

Ausgänge:

ans = 

    0  0  0  0 


ans = 

    0  0  0  0  0 
    0  0  0  0  0 


ans = 

    0  0  0  0  0  0 
    0  0  0  0  0  0 
    0  0  0  0  0  0 
Verwandte Themen