2011-11-19 10 views

cevap

9

Bunu deal() ile yapabilirsiniz.

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

X = 

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

Not. Örneğin, daha önce tanımlanmışsa, [X {1: 4, 1}] = anlaşma (sıfırlar (4)) ' –

7

alternatif bir yol:

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

diğeri:

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

Alternatifler, X boyutunun yeni içerikle aynı satırda belirlenme avantajına sahiptir. . Onları anlaşmalarını tercih ederim. anlaşma muhtemelen başka bir bağlantıda kullanılır. – Trilarion

3

Ve yine başka bir yol:

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

Bu çözüm için atayabilirsiniz gerçeğini kullanır Değişkenler boyutunun ötesine geçen indeksler. Bu durumda Matlab otomatik olarak genişler. Benzer şekilde

: Bu `X` zaten varsa değil güvenli olduğunu

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