2011-11-19 9 views

Respuesta

9

Puede hacerlo con deal().

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

X = 

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

Tenga en cuenta que esto no es seguro si se 'x' ya existe. Por ejemplo, si se definió así antes '[X {1: 4, 1}] = deal (ceros (4))' –

7

Una forma alternativa:

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

otro:

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

Las alternativas tienen la ventaja de que el tamaño de X se determina en la misma línea que el nuevo contenido . Yo preferiría que trataran. el trato probablemente se use mejor en alguna otra conexión. – Trilarion

3

Y sin embargo, de otra manera:

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

Esta solución utiliza el hecho de que se puede asignar a índices que se encuentran más allá del tamaño de las variables. Matlab se expandirá automáticamente en este caso.

mismo modo:

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