Error: Undefined function or variable 'fgetl' when fgetl() is placed inside an else statement
8 次查看(过去 30 天)
显示 更早的评论
Hi, I'm writing a simple script to read a .csv file. I get the error:
Undefined function or variable 'fgetl'.
Error in (filename) (line 36)
line = fgetl(fid);"
It's strange because the call to fgetl() outside the if statement works fine!
if(~exist(file_in))
FInputErrMsg = 'not located in working directory.';
Suggestion = ['Change script parameter or move the file into script'...
' working directory.'];
error('Expected input file: "%s" %s\n%s',file_in,FInputErrMsg,Suggestion);
elseif(exist(file_out))
% TODO#1
end
% Open file_in1 to count the number of sites N
fid = fopen(file_in,'r');
line = fgetl(fid);
if(fid == -1)
error('Error opening %s. Exiting.', file_in);
else
line = fget1(fid); %<---------------------- Offending Line
end
fclose(fid);
0 个评论
采纳的回答
Steven Lord
2017-7-16
Check in your original code whether you're calling fgetl with a lower-case L or calling fget1 with the number one. The code segment you posted implies the latter, the error message you posted implies the former.
2 个评论
更多回答(1 个)
dpb
2017-7-16
fid = fopen(file_in,'r');
line = fgetl(fid);
if(fid == -1)
error('Error opening %s. Exiting.', file_in);
...
You've got the test for successful fopen out of order; that should be before you try to use it; then the fgetl call doesn't need to be inside the if construct at all. Then, it appears your fopen did fail so you called fgetl(-1) which then looks like an array reference instead of a function call since -1 isn't a valid file handle.
fid = fopen(file_in,'r');
if(fid<0), error('Error opening %s. Exiting.', file_in); end
line = fget1(fid);
fclose(fid);
...
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!