フィルターのクリア

use fprintf to write to a new file

2 ビュー (過去 30 日間)
ERC
ERC 2013 年 7 月 24 日
How do I write the data of one file ('source.dat') to another ('result.dat') using fprintf?
I tried,
fid=fopen('source.dat')
%I then manipulate the data of fid to my liking
result=fopen('result.dat','w')
fprinf(fid, desired format here)
Why am I getting an out-of-range error?
  1 件のコメント
dpb
dpb 2013 年 7 月 24 日
Need the actual code and the error directly instead of trying to tell us what it was...that'll include --- oh, I see it if what you actually did is identically what you posted...see answers.

サインインしてコメントする。

採用された回答

dpb
dpb 2013 年 7 月 24 日
編集済み: dpb 2013 年 7 月 24 日
...first I opened my source file via
fid=fopen('source.dat')
data=fscanf(fid, ... % get the data
fid=fclose(fid); % done w/ that file...
data=sqr(data); % do something to it
fid=fopen('results.dat','w'); % a new output file
fprintf(fid, fmt, data); % write it out
fid=fclose(fid); % close it now, too...
If you need to read and write to two (or more) files simultaneously, you must keep unique variables for them--fid1 and fid2 are popular as are things like fhi and fho (file handle in/out). If you ever do something like
fid=fopen('source.dat');
...
fid=fopen('output.dat','w');
you've just trashed the handle to source.dat and can no longer get to it--it's in limbo as it's open but your program has no valid way to communicate with it and you can't even close it cleanly other than by brute force hammer of
fclose('all')
or when Matlab itself finally closes and releases open handles.
doc fopen % and friends
  1 件のコメント
ERC
ERC 2013 年 7 月 24 日
Thank you!!

サインインしてコメントする。

その他の回答 (1 件)

dpb
dpb 2013 年 7 月 24 日
fid=fopen('source.dat')
% do some stuff to the (presumed read but unshown) data from 'source.dat'
result=fopen('result.dat','w')
fprinf(fid, desired format here)
fid is still the handle for 'source.dat' or is invalid if you have done an
fclose(fid)
OTOMH I don't recall what that error message is, would think it would be invalid handle or somesuch, however, not some out-of-range error.
The handle to 'result.dat' is the variable result as you've written it above so the print statement (Fortran syntax :) )/fprintf call should be
fprintf(result, fmt, data)
NB: there's no data in the call above to be written.
But, while those are problems, w/o the actual code and specific error can't see w/ the cloudy crystal ball what actually was the cause of the specific error or what it means.
  1 件のコメント
ERC
ERC 2013 年 7 月 24 日
I am still a little confused. Let me re-phrase my question:
So, first I opened my source file via
fid=fopen('source.dat')
How do I print the data in fid to a new file via fprintf?
Thanks.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by