nargin doesn't work with my settings
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tom Bedkowski
am 20 Jan. 2019
Kommentiert: Tom Bedkowski
am 20 Jan. 2019
Hello,
i got one function to classifiy a Number N.
The classifikation depends on a maximal Number n_max and on the boundaries of the classes KG0,... .
Also it should depend, how much classes i define. So if i define just 4 boundaries KG0-KG3 case 6 should act, because we have 4 boundaries+ 2 standard input numbers N and n_max. If define just 3 boundaries, KG0-KG2 , case 5 should act.
The ClassNumber is ultimately the class in which i put Number N.
Case 5 doesnt work, when i define everything except KG3. Matlab throws: Undefined function or variable 'KG3'. It shall not happen if i go in case 5 isnt it?
Thank you for help.
function [ClassNumber] = Classification(N, n_max, KG0, KG1, KG2, KG3)
switch nargin
case 6
if (KG2<N/n_max) && (N/n_max<=KG3)
ClassNumber=3;
return
elseif (KG1<N/n_max) && (N/n_max<=KG2)
ClassNumber=2;
return
elseif (KG0<=N/n_max) && (N/n_max<=KG1)
ClassNumber=1;
return
end
case 5
if (KG1<N/n_max) && (N/n_max<=KG2)
ClassNumber=2;
return
elseif (KG0<=N/n_max) && (N/n_max<=KG1)
ClassNumber=1;
return
end
end
end
0 Kommentare
Akzeptierte Antwort
Stephen23
am 20 Jan. 2019
Bearbeitet: Stephen23
am 20 Jan. 2019
"nargin doesn't work"
nargin does work.
MATLAB input arguments are (for better or for worse) entirely positional. Inputs are not parsed by name, only by their position as inputs. So when you call your function with five input arguments, these are the input arguments that are defined within the function workspace:
function [ClassNumber] = Classification(N, n_max, KG4, KG3, KG2, KG1, KG0)
1, 2, 3, 4, 5 ----------
Clearly with five input arguments KG1 and KG0 are not defined, so any attempt to use them will be an error, exactly as you show in your question. So nargin works perfectly: it counts five input arguments. That you then tell MATLAB to run some code that tries to access variables that you did not define, is not the fault of nargin.
4 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Large Files and Big Data finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!