how to convert cell array to a matrix?

I have a 5X4 matrix whose each element is a cell array. how to convert it to a simple matrix of elements.

5 个评论

try if this works
X=cell{5,4} %your cell Y=cell2mat(X) % your desired matrix
@Zara Khan: what size would you expect the output to be? Would padding be acceptable to you? If so, with what value?
Attach data instead of image snippet..have a look on Cell2mat
I want to access this matrix as row by row
Bhowmik U: No its not working as we cant use cell for cell arrays.

请先登录,再进行评论。

回答(1 个)

A = {[1 2 3],[4 5],6 ; [11 12],13,[] ; 21, [22 23], [24 25]} % data
B = arrayfun(@(k) cat(2,A{k,:}),1:size(A,1),'un',0) % make row vectors
C = padcat(B{:}) % pad vectors with NaNs

6 个评论

its nice. But how to use this codes when I dont have some predefined values. Like I have a code:
d{i,j}=diff(A{i,j});
Now I want to make this d as simple matrix instead of cell arrays. How I will use your above codes in this case?
use d instead of A to create B ... I am no sure if I understand your problem though ...
How this will be when I am retrieving data from a loop ? If I use d instead of A then still I am using some predefined values.
At some point you will have a cell array with values, won't you? Then you can transform it as above.
yes that can be done using the above code. But what about when I am storing values from loops?
This is all rather vague ... Can you show us some code, showing where you get stuck?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by