Table function with cells
    7 views (last 30 days)
  
       Show older comments
    
Hi,
I have a cell variable (166*1 cell) organized like this :
data_table =
1*4 cell
1*4 cell
1*4 cell
...
Each 1*4 cell is organized like this :
data_table{1,1} =
'A'	'[1 25]'	'double'	""
data_table{2,1} =
'AF'	'[1 1]'	'double'	1
...
When I use the command t = table(data_table{:,:}) (to export to an Excel file), all datas are reorganised in an unique row array :
'A'	'[1 25]'	'double'	""	'AF'	'[1 1]'	'double'	1....
How to keep the same arrangement as in the intial data_table array?
Thank you.
2 Comments
  Stephen23
      
      
 on 27 Apr 2023
				
      Edited: Stephen23
      
      
 on 27 Apr 2023
  
			Rather than storing lots of 1x4 cell arrays inside a 166x1 cell array, your data should probably be stored as one single 166x4 cell array. That would also make your task much easier. Lets try using some fake data:
data_table = cell(3,1);
data_table{1} = {'A', '[1 25]', 'double', ""};
data_table{2} = {'AF', '[1 1]', 'double', 1};
data_table{3} = {'B', '[0 0]', 'double', "Hi"};
Which probably shold be stored like this (or in a table):
C = vertcat(data_table{:})
Which in turn makes saving the data easier:
writecell(C,'myfile.xlsx')
Do not use a loop to create lots of separate tables.
Accepted Answer
  Sufiyan
    
 on 27 Apr 2023
        Hi,
You can refer to the below code.
%sample data
data_table = cell(3,1);
data_table{1} = {'A', '[1 25]', 'double', ""};
data_table{2} = {'AF', '[1 1]', 'double', 1};
data_table{3} = {'B', '[0 0]', 'double', "Hi"};
% Convert each cell to a separate table
tables = cell(size(data_table));
for i = 1:numel(data_table)
    tables{i} = cell2table(data_table{i});
end
% Concatenate tables 
t = vertcat(tables{:});
disp(t);
%writetable(t, 'filename.xlsx');
Hope this helps!
More Answers (0)
See Also
Categories
				Find more on Tables in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

