convert cell 2 double with a table inside

7 visualizzazioni (ultimi 30 giorni)
Megha
Megha il 10 Dic 2018
Commentato: Astha Singh il 14 Dic 2018
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
madhan ravi
madhan ravi il 10 Dic 2018
so upload your data as .mat file
Guillaume
Guillaume il 13 Dic 2018
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)

Astha Singh
Astha Singh il 13 Dic 2018
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
Stephen23
Stephen23 il 13 Dic 2018
@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.
Astha Singh
Astha Singh il 14 Dic 2018
Sure. Thanks, I missed that.

Accedi per commentare.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by