Please help me with the error : "Parse error at numargin: usage might be invalid MATLAB syntax"

My project is "GUI Based Home Automation System using Arduino and MATLAB" , after creating the gui file, the file gui_mainfnc.m appears with the word "numargin" ( in the code below). Then, MATLAB requires me to fix the error due to "Parse error at numargin: usage might be invalid MATLAB syntax". Because this file is created automatically, I dont know how to fix this.

댓글 수: 6

Is there a reason you are not using nargin ?
thank you very much for your advice but when I change "numargin" to "nargin" the error is still the same "Parse error at nargin: usage might be invalid MATLAB syntax". I really dont know what is actually happening
Until you fix the "end", the error is going to continue to occur.
I think you need to change
isequal(gui_Statefields(i), 'gui_Name')
to
if isequal(gui_Statefields(i), 'gui_Name')
I'm so sorry fro replying you so late. tomorrow is my project's deadline so I'm begging for your help again. I've changed just like what you told me to do however the error "nargin" is still the same. You can see here:ask again.PNG
Change this
nargin=length(varagin);
if numargin ==0
To this
if nargin == 0
You misspelled varargin and you didn't use the variable you just created. And you don't need to do either.
It seems like changing does not work. Thank you so much for your enthusiasm but this is the only error I encounter in this file. So would you mind helping me ?ask again 1.png

댓글을 달려면 로그인하십시오.

 채택된 답변

Steven Lord
Steven Lord 2019년 8월 13일
Smart indent your code and you should see that you have an extra end. The end on line 45 ends the for loop "for i=1:length(gui_StateFields)" and the end on line 46 likely ends the main function in the file. Therefore your nargin call is outside any function and that's not allowed.
Try deleting the end on line 46 and smart indent again. Once you do that each end should line up with the if, for, or function keyword to which it corresponds.

추가 답변 (1개)

isequal() is a comparison. There is seldom a benefit to using isequal() in an expression by itself except for debugging.
Count your statement nesting. "for i" gets you to nesting level 1. 'if i==" gets you to nesting level 2. The "end" after the error() gets you back to nesting level 1. The "isequal" does not change the nesting level. The assignment to gui_Mfile does not change the nesting level, but it is deceptively indented. The "end" after that assigment matches the "for i" statement and takes you to nesting level 0. Then the "end" after that has nothing to match up to and gives you an error.
I would suggest to you that you have accidentally deleted an "if" in the isequal() line.

카테고리

도움말 센터File Exchange에서 Environment and Settings에 대해 자세히 알아보기

태그

질문:

2019년 8월 12일

답변:

2019년 8월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by