2011-11-19 13 views

risposta

9

È possibile farlo con deal().

>> [X{1:3, 1}] = deal(zeros(3)) 

X = 

    [3x3 double] 
    [3x3 double] 
    [3x3 double] 
+0

Si noti che questo non è sicuro se 'X' esiste già. Ad esempio se è stato definito in questo modo prima di '[X {1: 4, 1}] = deal (zeri (4))' –

7

Un modo alternativo:

X = repmat({zeros(3)}, 3, 1); 

un altro:

X = cell(3,1); 
X(:) = {zeros(3)}; 
+0

Le alternative hanno il vantaggio che la dimensione di X è determinata sulla stessa riga del nuovo contenuto . Preferirei che affrontassero. l'affare probabilmente è meglio usato in qualche altra connessione. – Trilarion

3

E ancora un altro modo:

X = {zeros(3)}; 
X(1:3,1) = X; 

Questa soluzione utilizza il fatto che è possibile assegnare a indici che si trovano oltre la dimensione delle variabili. Matlab si espanderà automaticamente in questo caso.

Allo stesso modo:

clear X; 
X(1:3,1) = {zeros(3)};