matlab structure to csv file

I have a struct like below
header: {1x6 cell}
dates: 202201
data: [0.9779 0.2625 -0.0108 0.1753 -0.0049 -0.0172]
AssetID: 'PAR'
where
K>> coef.header
ans =
Columns 1 through 5
'mexico' 'france' 'berlin' 'italy' 'china'
Column 6
'srilanka'
I want to take output of this in .csv file like
Any help or guidance will be really appricated

 Accepted Answer

Jan
Jan on 16 Feb 2022
Edited: Jan on 17 Feb 2022
% [EDITED] Adjusted for comma separators:
coef.header = {'mexico', 'france', 'berlin', 'italy', 'china', 'srilanka'};
coef.dates = 202201;
coef.data = [0.9779 0.2625 -0.0108 0.1753 -0.0049 -0.0172];
coef.AssetID = 'PAR';
[fid, msg] = fopen('C:\Folder\YourFile.csv', 'w');
assert(fid > 0, msg); % No file opening without checking the success!
fprintf(fid, '%s', 'dates');
fprintf(fid, ',%s', 'AssetID', coef.header{:});
fprintf(fid, '\n');
fprintf(fid, '%i,%s', coef.dates, coef.AssetID);
fprintf(fid, ',%g', coef.data);
fprintf(fid, '\n');
fclose(fid);

3 Comments

Thanks Jan for help on this worked like charm but just little more help as will require the file to be comma delimited , how can I achive this , for now the output file looks like -
Each place Jan had a \t change that to a comma.
Jan
Jan on 17 Feb 2022
Edited: Jan on 17 Feb 2022
@Sanjay Zamindar: I've modified the code. A problem with the commas is that they should not appear after the last element of each row.
With tabs as separators, a trailing tab is okay usually.
There are smarter methods to export an CSV file, e.g. writematrix and a lot of tools in the FileExchange. I wanted to suggest a simple "wooden" method, because it can be adjusted easily.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 16 Feb 2022

Edited:

Jan
on 17 Feb 2022

Community Treasure Hunt

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

Start Hunting!