Error: File: Expression or statement is incorrect--possibly unbalanced (, {, or [

1 view (last 30 days)
fprintf(fid3,'%d \t %f \t %f \t %s \n',person,faceweight, fpweight,str1);
  2 Comments
faaruuq jamaludin
faaruuq jamaludin on 8 Mar 2018
Edited: Stephen23 on 8 Mar 2018
the full code
V% Open files with face score and fingerprint score
fid1=fopen('finalfacescore1.txt','r');
fid2=fopen('finalfpscore1.txt','r');
fid3=fopen('weightdatabase1.txt','wt+');
facescore = [];
fpscore = [];
fcount=1;
count=100;
tscore=0.0;
success=0;
failure=0;
faceweight=0.9;
fpweight=0.1;
%fetch face score and fingerprint score in array
facescore=fscanf(fid1,'%f',900);
fpscore=fscanf(fid2,'%f',900);
% first loop for 30 persons
for i=1:30
maxscore=0;
person=count+i;
totalscore = [];
index=0;
tempface = [];
tempfp = [];
faceweight=0.9;
fpweight=0.1;
% second loop for each person's score comparison
for j=1:30
tempface = [tempface facescore(fcount)];
tempfp = [tempfp fpscore(fcount)];
fcount=fcount+1;
end
k=1;
% loop will go for nine times for nine different score
combinations. If
% person matches with index than success else failure and loop will
% stop on finding success.
while(k<=9)
%call identifyperson function to get mathcing index
[index]=identifyperson(person,faceweight,fpweight,tempface,tempfp);
if(person==index)
fprintf(['in success \n']);
success=success+1;
str1='success';
fprintf(fid3,'%d \t %f \t %f \t %s \n',person,faceweight, fpweight,str1);
break;
else
fprintf(['in failure\n']);
failure=failure+1;
%on failure in matching person with index weights are adjusted.
%fpweight is increased by 0.1 and faceweight decreased by 0.1
[fp,fw]=adjustweight(faceweight,fpweight);
k=k+1;
faceweight=fp;
fpweight=fw;
if(k==10)
str1='failure';
fprintf(fid3,'%d \t %f \t %f \t %s \n', person,
faceweight, fpweight,str1);
fprintf(['Failure to identify \n']);
end
end
end
end
%calculate success rate
successrate=(success/30)*100;
fprintf(['Successful identification :' num2str(success) '\n']);
str2='successrate=';
%write success rate in file
fprintf(fid3,'%s \t %f \n',str2,successrate);
fclose(fid1);
fclose(fid2);
fclose(fid3);
Stephen23
Stephen23 on 8 Mar 2018
@faaruuq jamaludin: Your code is badly aligned. Badly aligned code is one way that beginners hide mistakes and bugs in their code. You should use the default alignment of the MATLAB editor: select all code, the press ctrl+i.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 8 Mar 2018
fprintf(fid3,'%d \t %f \t %f \t %s \n', person, faceweight, fpweight,str1);
or
fprintf(fid3,'%d \t %f \t %f \t %s \n', person, ...
faceweight, fpweight,str1);

More Answers (0)

Categories

Find more on Startup and Shutdown 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!