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

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!