convert cell 2 double with a table inside
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
Guillaume
2018-12-13
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)
回答(1 个)
Astha Singh
2018-12-13
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 个评论
Stephen23
2018-12-13
@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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!