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

1 次查看(过去 30 天)
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 个评论
Rik
Rik 2019-8-13
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.
Dung Dang
Dung Dang 2019-8-13
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 个)

Walter Roberson
Walter Roberson 2019-8-12
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.

类别

Help CenterFile Exchange 中查找有关 Debugging and Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by