2011-11-19 14 views

Odpowiedz

9

Możesz to zrobić pod numerem deal().

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

X = 

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

Należy pamiętać, że to nie jest bezpieczne, jeśli 'X' już istnieje. Na przykład, jeśli zostało to zdefiniowane przed '[X {1: 4, 1}] = deal (zera (4))' –

7

Alternatywnym sposobem:

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

jeszcze jedno:

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

Alternatywy mają tę zaletę, że rozmiar X jest określany na tej samej linii co nowa treść . Wolałbym, żeby sobie z nimi poradzili. prawdopodobnie najlepiej jest użyć w innym połączeniu. – Trilarion

3

I jeszcze inny sposób:

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

Rozwiązanie to wykorzystuje fakt, że można przypisać do wskaźniki leżące poza rozmiarem zmiennych. Matlab automatycznie rozszerzy się w tym przypadku.

Podobnie:

clear X; 
X(1:3,1) = {zeros(3)}; 
Powiązane problemy