convert cell 2 double with a table inside

I have a matrix A containing cell array 12x1 which has table inside with dimension 86400x24 in each cell.
I would like to convert this matrix A to double. Is there any way?
Please note I want to keep the cells and hence table concantenated in the output. I do not wish to convert each
cell individually. I want to convert matrix A

4 Commenti

cell2mat()?
Error using cell2mat (line 52)
CELL2MAT does not support cell arrays containing cell arrays or objects.
so upload your data as .mat file
A cell array is not a matrix.
A table is not a matrix either.
Do you want to:
  • convert each table into matrices (assuming every variable of the table is numeric) and then concatenate the whole lot vertically?
  • or simply concatenate all the tables into a single table (assuming all the tables have the same variables)

Accedi per commentare.

Risposte (1)

Based on the information provided, I can suggest you to employ a for-loop to convert each table to an array, using the function 'table2array()', and keep concatenating it to your desired matrix. Look at the following code for example:
fin_mat = [];
for =1:length(c)
fin_mat = [fin_mat ; table2array(c{i})];
end
Here, 'c' is the cell array of tables.

3 Commenti

Personally I'd do it like this:
%A: cell array where each cell is a table:
Amatrices = cellfun(@table2array, A, 'UniformOutput', false);
Afinal = vertcat(Amatrices{:});
@Astha Singh: expanding numeric arrays within loops is not efficient, and the MATLAB documentation recommends using more efficient ways to write code:
This can be easily avoided in this case e.g. placing the data into a preallocated cell array and concatenating after the loop, or using cellfun as Guillaume showed.
Sure. Thanks, I missed that.

Accedi per commentare.

Categorie

Richiesto:

il 10 Dic 2018

Commentato:

il 14 Dic 2018

Community Treasure Hunt

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

Start Hunting!

Translated by