problem with dlmwrite
Show older comments
hi, I have :
aa1=[aa(1) aa(2) aa(3) aa(4) ];
aaseq(i,k2)={aa1};
dlmwrite('d.txt',aaseq);
I got this error:
??? Error using ==> dlmwrite at 112 The input cell array cannot be converted to a matrix.
how solve this problem?
thanks in advance
Answers (2)
Sean de Wolski
on 6 Dec 2011
0 votes
Don't convert it to a cell array with the {}.
4 Comments
huda nawaf
on 6 Dec 2011
Sean de Wolski
on 6 Dec 2011
Not with dlmwrite/read.
Sean de Wolski
on 6 Dec 2011
Why note just save it to a matfile:
doc save
?
huda nawaf
on 6 Dec 2011
Walter Roberson
on 6 Dec 2011
0 votes
dlmwrite() cannot write cell arrays, and is very limited in writing text. Please see
4 Comments
huda nawaf
on 7 Dec 2011
huda nawaf
on 7 Dec 2011
Walter Roberson
on 7 Dec 2011
Remember that when you use that code, you need to explicitly add any commas you want between elements.
I do not recommend using dlmwrite for character data: I only devised the code to do it because someone said it couldn't be done at all and I was feeling contrary.
If you want to write a cell array of strings in delimited form, you should use code such as
fid = fopen('k.txt','wt');
fmt = [ repmat('%s,', 1, size(aaseq,2)-1), '%s\n' ];
fprintf(fid, fmt, aaseq{:});
fclose(fid)
If you want double-quotes to appear around every string field, then modify the fmt line to
fmt = [ repmat('"%s",', 1, size(aaseq,2)-1), '"%s"\n' ];
huda nawaf
on 8 Dec 2011
Categories
Find more on Text Files 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!