Dump a struct to an ascii delimited file
4 views (last 30 days)
Show older comments
Dear all, I have a code that looks like that
for i=1:10
mystruct.filename=sprintf('test %d',i);
mystruct.number=1;
end
and I want to dump these data in ascii file with comma or tab delimited Every line in the file I want to be one iteration so the file to look like
test1,1 test2,2 test3,3 ...
How can I dump a struct to an ascii file?
Best Regards Alex
1 Comment
Friedrich
on 16 Aug 2011
Are you sure that your code looks like this? Since the above code will result in one struct with
filename: 'test 10'
number: 1
as values/fields.
Accepted Answer
Friedrich
on 16 Aug 2011
Hi,
only a guess:
for i=1:10
mystruct(i).filename=sprintf('test %d',i);
mystruct(i).number=i;
end
txt = struct2cell(arrayfun(@(x) structfun(@num2str,x,'UniformOutput',false),mystruct));
tmp = squeeze(strcat(txt(1,1,:),',',txt(2,1,:),';'));
fid = fopen('out.txt','w');
fprintf(fid,'%s',strcat(tmp{:}))
fclose(fid)
7 Comments
Friedrich
on 18 Aug 2011
Another guess. I created a dummy cell a which has some rows and columns:
a = {'abcde', 'fghi', 'jk','l'; '1','2','3','4'};
[n m] = size(a);
b = cell(n,2*m);
b(:,1:2:2*m-1) = a;
b(:,2:2:end) = {','};
b(:,end) = {';'};
fid = fopen('out.txt','w');
for i=1:n
fprintf(fid,'%s \n',strcat(b{i,:}));
end
fclose(fid);
More Answers (0)
See Also
Categories
Find more on Data Type Conversion 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!