invalid syntax at '=' . A '(' might be missing a closing ')'

4 views (last 30 days)
The error is at line 14 and 26
switch nargin
case 0
disp('Non ci sono stati input per la funzione!')
case 1
if (f = 0)
disp('Non hai inserito correttamente la funzione la funzione')
end
case 2
if(~isscalar(xo) || isinteger(xo))
disp('Mammt')
end
case 3
if(~isscalar(xo) || isinteger(xo)) % anche se ci sta un altro controllo che nello non vuole dirmi
disp('A')
end
case 4
if(~isinteger(NMAX) || NMAX = 0 || ischar(NMAX))
disp('A pecrrrr, cioè nmax non va bene')
end
end

Accepted Answer

Catalytic
Catalytic on 29 Mar 2019
Edited: Catalytic on 29 Mar 2019
if (f == 0)
and same thing in this line
if(~isinteger(NMAX) || NMAX == 0 || ischar(NMAX))
  1 Comment
Guillaume
Guillaume on 29 Mar 2019
Note that matlab is not C, there is no need to enclose a conditional statement in (), so
if f == 0
if ~isinteger(NMAX) || NMAX == 0 || ischar(NMAX)
Note that isinteger check that the type is integer not that the values are integer,
>> isinteger(1) %return false, since double is not an integer type
ans =
logical
0
>> isinteger(uint8(1)) %return true, the type is integer
ans =
logical
1
I suspect that you meant to test if the value was integer, not the type.
Also note that the ischar(NMAX) is redundant, if NMAX is char, it will have failed the ~isinteger test.
You may want to use validateattributes instead of writing your own tests:
validateattributes(f, {'numeric'}, {'nonzero', 'scalar'});
validateattributes(NMAX, {'numeric'}, {'integer', 'nonzero', 'scalar'})

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!