2010-01-17 3 views
14

У меня есть вектор-столбец, я хочу, чтобы преобразовать в массив ячеек, таких как:Как преобразовать вектор в массив ячеек?

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] 

Как я могу сделать это без явного для цикла? Я пробовал:

B{:} = A(:) 

и

[B{:}] = deal(A) 

не повезло ...

Кроме того, если это возможно, как я могу сделать то же самое для матрицы, т.е. имеют каждый элемент в клетка сама по себе?

ответ

22

Используйте функцию num2cell:

B = num2cell(A); 

Работает с матрицами тоже.

+0

Я не могу поверить, что забыл об этом! благодаря – merv