Exports any type of MATLAB data to a nicely formated csv-file, including fieldnames of structs and any multidimensional subscript-indices.
This tool is especially useful if you want to save the content of large structs and cell-arrays to an excel or ods sheet. Any to csv works recursively until all the content of a complicated object is written to a csv-spreadsheet and opens it in the standard csv application. There you can save it to e.g. xls or ods.
Felix Zoergiebel (2020). ANY2CSV (https://www.mathworks.com/matlabcentral/fileexchange/19149-any2csv), MATLAB Central File Exchange. Retrieved .
Not overly pretty, but works when 'who' lists a variable, but workspace doesn't show it to navigate manually. (Tried openvar('varname'), which doesn't work either.) Bonus is you don't need to drill down into the structure like you would otherwise. Just have the function output to the screen as is shown in the example in the file.
I am currently using any2csv (<http://www.mathworks.com/matlabcentral/fileexchange/19149-any2csv>) to output my mat file as a csv.
I am getting an output with the headers as seen below.
>>Field,>> Field2,>> Field3,>> Field4,>> Field5, >> NestedStruct1
Data,Data,Data,Data,Data >>Field1,>>Field2,>>Field3,>> Field4,>> Field5
I would like to output this data as one row of headers with the data pertaining to that header below it while containing the information about the structure format in the header. This can be seen in the other attached image.
I have changed the layout to this from the original version (lines 122-127)
%left right top bottom
gap_c=struct('l',0,'r',0,'t',0,'b',1); % gaps around cell elements
gap_s=struct('l',0,'r',0,'t',0,'b',0); % gaps around struct-fields
gap_n=struct('l',0,'r',0,'t',0,'b',0); % gaps around arrays
gap_t=struct('l',0,'r',0,'t',0,'b',0); % gaps around text
gap_content=struct('l',0,'t',1); % gap between titles and content. Both must be >=0, sum should be >0
As I rarely need to work with recursive functions I am having difficulty making this last change. Would you know how to change it or what I should change in the code?
Thanks in advance!
This does not work with a structure that has nested field names.
MATLAB 2012a, <1305983x3 cell>, sucked all my RAM, I ended up using http://www.mathworks.com/matlabcentral/fileexchange/7601-cell2csv instead
Thanks, very useful
Could you please have a look at this thread?
I am out of memory in 2009b. What could be a reason for that?
very useful !!
but I find the opening of excel annoying
I also got a (little) problem when creating the file, it says :
The system cannot find the file ''pathname''
normal it does not found... has not been created yet....
Very usefull work ( see comment from Steffen).
This is a great way to manage the workflow of your data from Matlab to any office-programm like excel or openoffice. It's handy and easy to use.
I am using OpenOffice.org instead of Microsoft Office. OpenOffice.org has a very nice import function for csv files. Once the file is imported you can save as XLS. I know that those functions are available via command-line tools, however I do not remember the names and I have never used them.
Do you know of a way to convert from CSV to XLS quickly?
Shame on me, I should have tested that case... Thanks Urs, I corrected the bug. Felix
does NOT work with empty cell entries, eg,
New feature: struct fields can be arranged vertically or horizontally. Setting in line 128
- display struct fields horizontally or vertically -> line 128
Thanks Jiro Doke for those two ideas!
- removed empty struct bug
The empty cell bug is now finally gone.