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 Comments

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.

Sign in to comment.

Answers (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 Comments

Zara Khan
Zara Khan on 31 Jul 2018
Edited: Zara Khan on 31 Jul 2018
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?

Sign in to comment.

Categories

Find more on Convert Image Type in Help Center and File Exchange

Asked:

on 30 Jul 2018

Commented:

on 1 Aug 2018

Community Treasure Hunt

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

Start Hunting!