Help with saving a matrix

조회 수: 3 (최근 30일)
aurc89
aurc89 2015년 3월 18일
편집: Stephen23 2015년 3월 19일
I have a matrix with dimension MxN double. How can I write this matrix in a .dat file by using the function fprintf ? M and N can be arbitrarily big. Thanks
  댓글 수: 1
dpb
dpb 2015년 3월 18일
What's the problem with the examples at
doc fprintf
???

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2015년 3월 18일
편집: Stephen23 2015년 3월 19일
Rather than creating some hack-code to do this using fprintf, why not using one of the inbuilt function that prints the whole matrix at once: csvwrite or dlmwrite. These will automatically print the whole of your matrix, regardless of how large the size. dlmwrite can even be used to append data to the end of a file.
Here is an example showing how simple it is to use dlmwrite:
>> A = rand(4,5);
>> dlmwrite('test.csv',A)
or with a specific precision:
>> dlmwrite('test.csv',A,'precision','%.3f')
Alternatively you could save space and save the data to a binary .MAT file instead?
  댓글 수: 1
dpb
dpb 2015년 3월 18일
???
fprintf is vectorized; see following answer.
Granted some of the higher level functions are a little more convenient, but really not all that much difference...the key one is probably that can specify a specific single format string and the \n is automagically appended.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

dpb
dpb 2015년 3월 18일
편집: dpb 2015년 3월 18일
Hmmm....answering my own question--ok, they are a little skimpy on generalities, aren't they?
fmt=['%.3f ',1,size(X,2)-1) '%.3f\n']; % format for number columns
fprintf(fid,fmt,X.') % and write--NB: the .' to output in row order
open the file with fopen first, of course, to have a valid file handle and close when done.
NB: There are higher-level routines such as dlmwrite that relieve some of the burdens. A particular key of note in the above is the use of repmat to build the format string of the right number of repeated fields since C i/o is so lame-brained/ill-conceived as to have written the descriptors such that can't introduce a repeat count (can you tell I've been thru another extensive thread just within last few days lamenting many of the shortcomings of C format strings vis a vis Fortran FORMAT?)...
I agree after looking that the examples should be more representative of real practice for more than toy ones that illustrate such issues and mention the storage order issues, etc., etc., etc., ...

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by