Error: Undefined function or variable 'fgetl' when fgetl() is placed inside an else statement
조회 수: 9 (최근 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!