MATLAB Answers


How to convert multi sized cell array into an MxN matrix

Asked by Sreekanth Nandakumar on 22 Mar 2019
Latest activity Edited by Jan
on 25 Mar 2019
Accepted Answer by Jan
I have a cell array of 1x257 in which each cell array column contains different sized Mx1 array as shown in the screenshot. Cell_array.jpg
As you can see, each column in this cell array has different number or rows in it. I need to convert this cell array named Voltage into a matrix with each column contains all the numerical data that is present in the correspoding cell array column.
That means, the first cell array has 143 rows. So the column 1 of my new matrix has 143 rows. Similarly column 2 contains 44 rows etc. upto 257 columns. Is it even possible to form a table of different rows ?
Advance gratitude for any help.


Sign in to comment.

1 Answer

Answer by Jan
on 22 Mar 2019
Edited by Jan
on 25 Mar 2019
 Accepted Answer

Matrices have te same number of elements in all columns and rows, repsectively. This is the definition of a matrix. So you cannot store vectors of different lengths in a matrix.
You can pad the vectors with NaNs, if this is sufficient for your problem. But storing a collection of vectors of different size in a cell array seems to be clear, clean and efficient.

  1 Comment

Thankyou very much for your answer. I wanted to store all the data into a table so that it can be read easily. Converting into a 'matrix' was a wrong choice of word. Thank you very much once again. :)

Sign in to comment.