"Error using fscanf"

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 Commento

Stephen23
Stephen23 il 19 Mag 2023
Modificato: Stephen23 il 19 Mag 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!

Accedi per commentare.

 Risposta accettata

Askic V
Askic V il 19 Mag 2023
Modificato: Askic V il 19 Mag 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 Commenti

pizzaa
pizzaa il 19 Mag 2023
When i run the code "lightfile" can be read.
pizzaa
pizzaa il 19 Mag 2023
can u help me with the code in using readmatrix
pizzaa
pizzaa il 19 Mag 2023
Nice ty so much

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2022b

Richiesto:

il 19 Mag 2023

Commentato:

il 19 Mag 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by