2010-01-17 15 views
14

Ich habe einen Spaltenvektor ich zu einem Zellenfeld umwandeln möchten, wie:Wie kann ich einen Vektor in ein Zellenfeld konvertieren?

A = rand(10,1); 

B = cell(10,1); 
for i=1:10 
    B{i} = A(i); 
end 

B = 
    [0.6221] 
    [0.3510] 
    [0.5132] 
    [0.4018] 
    [0.0760] 
    [0.2399] 
    [0.1233] 
    [0.1839] 
    [0.2400] 
    [0.4173] 

Wie kann ich dies tun, ohne eine for-Schleife explizit? Ich habe versucht:

B{:} = A(:) 

und

[B{:}] = deal(A) 

ohne Glück ...

Auch wenn möglich, wie kann ich die gleiche Sache für eine Matrix zu tun, also hat jedes Element in einem Zelle für sich?

Antwort

22

Verwenden Sie die Funktion num2cell:

B = num2cell(A); 

Arbeiten mit zu Matrizen.

+0

Ich kann nicht glauben, dass ich diesen vergessen habe! Vielen Dank – merv

Verwandte Themen