How do I format and write a numeric array to a file as text?

10 views (last 30 days)
What's the easies way to write an array to a formatted file. If I have 16 columns, it seems cumbersome that I have to specify the individual format for each column and then print it in a for loop. Isn't there something like this?
Arrayprint(fid,Data,'f10.5')
thanks

Answers (3)

Jan
Jan on 5 Jul 2011
DLMWRITE can create such files. But FPRINTF is vectorized also, so you do not need a loop:
x = rand(100, 16);
fmt = [repmat('%10.5f ', 1, 15), '%10.5f\n'];
fid = fopen(FileName, 'w');
fprintf(fid, fmt, x'); % transposed!
fclose(fid);

Brian
Brian on 6 Jul 2011
I don't see where DLMWRITE can determine that I have 16 columns and automatically insert a '\n' but I'll keep looking into it. In the meantime, your approach works great and I'll simply do that. Perhaps using the "size" command along with "repmat" I can come up with something. thanks very much!

Brian
Brian on 6 Jul 2011
I found that DLMWRITE works exactly like I want it to.
dlmwrite(FileName,output,'precision',5,'delimiter',' ')
thanks again for the information. I was unaware of that command.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!