Invalid file identifier. Use fopen to generate a valid file identifier.
Show older comments
Hello,
I am trying to open a file, skip the first 6 lines (headers) and extract data from the rest of the lines in the file. Here is the code:
%%Declarations
targetinfo(1000)=struct('distance', 0, 'speed', 0, 'angle', 0, 'rcs', 0);
i=1; %index
count=0; %file size counter
[fid, message]=fopen('log.asc','r'); %open log file
%%Read file and extract relevant data
if fid==-1
disp('Error')
else
for k=1:6
header=fgetl(fid); %skip headers
end
while ~feof(fid)
line=fgetl(fid);
if line(16)=='S' || line(13)=='C' || line(1)=='T' %remove control and status signals
continue;
end
id=str2num(line(16:18));
line=line(41:63);
line=line(~isspace(line));
if id==100
canstatus=hex2dec(line(1:2));
targetcount=hex2dec(line(3:4));
canchannel=hex2dec(line(9:10));
else
targetinfo(i).distance=hex2dec(line(1:4));
targetinfo(i).speed=hex2dec(line(5:8));
targetinfo(i).angle=hex2dec(line(9:12));
targetinfo(i).rcs=hex2dec(line(13:16));
end
count=count+1; %increase file size counter
i=i+1; %increase index
fclose(fid); %close file
end
end
I am getting the error I have specified in the title. The value of fid returned is not -1 (it is 4 at the moment) and I do have access to the file, since I can open it in Notepad to view its contents.
I am not opening and closing the file multiple times, just once. Is there any reason I'm missing out?
Thank you for your help.
Accepted Answer
More Answers (1)
daniel cheng yi lu
on 28 Nov 2018
14 votes
For my situation, I have checked everything but missed an easy step.
Please select "Browse for folder" and browse for the folder which the current script is saved, before you run your 'fopen' code.
_LI.jpeg)
5 Comments
dear khatoon
on 19 Oct 2019
brilliant! thank you!
Jiaoran Wang
on 25 Feb 2020
Thanks a lot~~~~~~~~~~~~
really helped me~
Tunç Yagci
on 28 Dec 2021
literally saved my life
parivesh meena
on 27 Jun 2022
thanks budddy i got the same
Justin Bryant
on 23 Feb 2023
Edited: Justin Bryant
on 23 Feb 2023
Thanks helped me too!
Categories
Find more on Environment and Settings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!