How to convert cell to matrix

4 次查看(过去 30 天)
Ede gerlderlands
Ede gerlderlands 2013-7-16
I have a cell which is given by A= 1x13cell. I want to extract the contents of the cell into the form of a matrix of size (13 x number of points each cell containd) is this possible? The number of points in each cell varies. Can you help me with this?
  2 个评论
Jos (10584)
Jos (10584) 2013-7-16
I suggest you give a small example. For instance, if
C = {[1 2],[11 12 13]} % a cell array
how would you like the final matrix M to look like? Something like
1 2 NaN
11 12 13
?

请先登录,再进行评论。

回答(3 个)

Jan
Jan 2013-7-16
编辑:Jan 2013-7-16
N = cellfun('length', C);
M = numel(C);
R = NaN(M, N);
for k = 1:M
R(1:N(k)) = C{k}; % Perhaps: reshape(C{k}, 1, [])
end
  1 个评论
Ede gerlderlands
Ede gerlderlands 2013-7-16
编辑:Ede gerlderlands 2013-7-16
Thank you for yor reply. But this gives me the whole nubers that are found in the cell in the decending order following rows. What I really want is the numbers per cell . That is 13 rows and what is found in them . Thank you

请先登录,再进行评论。


David (degtusmc)
David (degtusmc) 2013-7-16
编辑:David (degtusmc) 2013-7-16
Look up cell2mat. The link for the documentation is below. I hope this helps
  3 个评论
Evan
Evan 2013-7-16
This will only work for cells arrays containing matrices of constant size in each array.
David (degtusmc)
David (degtusmc) 2013-7-18
That is true. I did not think about that. Thank you Evan.

请先登录,再进行评论。


Jos (10584)
Jos (10584) 2013-7-17
编辑:Jos (10584) 2013-7-17
Here is a suggestion
C = {[1 2 ;3 4],[11 12 13].',100:106} % a cell array
% make sure all elements are column vectors
C2 = cellfun(@(x) reshape(x,[],1), C,'un',0) ;
M = padcat(C2{:})

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by