textscan error only in loop: "Invalid file identifier. Use fopen to generate a valid file identifier"
Ältere Kommentare anzeigen
Hi,
I am receiving textscan error when I create a loop to process and write my files. If I run each file individually without a loop, it works without any problem. If anyone knows what will be the reason of it?
"Error using textscan.Invalid file identifier. Use fopen to generate a valid file identifier."
[fname,pname] = uigetfile("MultiSelect","on",'*.dat')
fname=[pname, fname];
if isequal(fname,0)
disp('User selected Cancel');
else
disp(['User selected ', fullfile(pname, fname)]);
end
for k = 1 : length(fname)
fprintf('Now reading file %s\n', fname{k});
fid=fopen(fname{k},'r');
F=textscan(fid,'%f','HeaderLines',17);
Temp=F{1,1}
T_out = timetable(datetime(2018,1,17,0,0,10*(0:size(Temp,1)-1)'),Temp);
time_array=datetime("29-May-2018 00:00:00", "InputFormat","dd-MMM-uuuu HH:mm:ss")
summerstart=find(T_out.Time=="29-May-2018 00:00:00")
Tsummer=T_out([summerstart]:end,:)
[filepath,name,ext] = fileparts(fname)
writetimetable(Tsummer,[name 'r.csv'])
end
Thanks a lot!
Akzeptierte Antwort
Weitere Antworten (1)
use fclose(fid) at the end of the for loop
sometimes, if using a script a file remains open and you may not have the identifier anymore. in this case use fclose('all')
1 Kommentar
Cakil
am 21 Apr. 2022
Kategorien
Mehr zu Data Import and Export finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!