Error in Reading and Writing a text file
1 回表示 (過去 30 日間)
古いコメントを表示
I have a problem with my program when i read and write the file. The following code is what I have so far. It works when I use only textscan and fopen with 'r' instead of 'r+'. The error is Invalid file identifier, Use fopen to generate a valid file identifier. Can somebody see a mistake? Thank you in advance
fid = fopen('3.csv', 'r+'); %Opens the file
NData = textscan(fid, '%s %s %d % ... %d', 'delimiter' ,',', 'headerlines',2);
T_DB = NData {32}; %Gets Dry Bullb Temperature
T_DP = NData {35}; %Gets Dew Point Temperature
RH = NData {38}; %Gets Relative Humitidy
Temp_data = [T_DB T_DP RH];
frewind(fid)
fprintf(fid, '%f %f %f', Temp_data);
fclose(fid); %Closes the file
0 件のコメント
採用された回答
Jan
2011 年 7 月 11 日
While "fopen(FileName, 'r')" searchs the file in all folders of the Matlab path, "fopen(FileName, 'r+')" looks in the current folder only. To solve this, change into the folder, which contains the file (see CD) or specify the file by a full path (see FULLFILE).
As a side-effect the fopen with 'r+' is about 2.3 times faster than with 'r' even if the file is specified with a full path.
1 件のコメント
Fangjun Jiang
2011 年 7 月 11 日
This could be the reason! Now I notice this sentence in help fopen. "FILENAME can be a MATLABPATH relative partial pathname only if the file
is opened for reading."
その他の回答 (1 件)
Fangjun Jiang
2011 年 7 月 11 日
Since you are reading and writing the same file, it is surprise to hear that 'r' (read only) works but 'r+' (read and write but not to create new) doesn't. Are you sure it is not the opposite?
Since you are read and write text file, I wonder if 'r+t' would help.
5 件のコメント
Fangjun Jiang
2011 年 7 月 11 日
All right, good to know! The example provided in help fopen shows 'w+t'
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!