"Error using fscanf"
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
i got error which saying "Invalid file identifier. Use fopen to generate a valid file identifier"
This is the code:
function [z] = Stereo( directory, imagename, numImages)
% ***********************************************************************
% Read the lights and directions:
% ***********************************************************************
lightfile = strcat( directory, '/', 'lights2.txt')
fid = fopen(lightfile, 'r');
numLights = 1;
numLights = fscanf(fid, '%d \n', [1]);
LightMatrix = [];
for i = 1:numLights
lightDir = fscanf(fid, '%f %f %f \n', [3]);
lightDir = lightDir/norm(lightDir);
lightMatrix(i,:) = lightDir;
end
this is the lights2.txt file
Can someone help me i m so curious about this. Bigh thanks for your help
1 Kommentar
Stephen23
am 19 Mai 2023
Bearbeitet: Stephen23
am 19 Mai 2023
Replace this command
strcat( directory, '/', 'lights2.txt')
with
fullfile( directory, 'lights2.txt')
And forget about using FOPEN & FSCANF: just use READMATRIX to import that file data:
If you use FOPEN then always always always remember to FCLOSE afterwards!
Akzeptierte Antwort
Askic V
am 19 Mai 2023
Bearbeitet: Askic V
am 19 Mai 2023
You're getting this error because the path to your file is not correct.
this is where the problem is:
lightfile = strcat( directory, '/', 'lights2.txt')
Print/Display this variable to see the path to the file.
BTW, if your file is structured like in the posted image, I suggest to use readmatrix function instead of fopen and fscanf.
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!