Please address my problem

for the following code
function [sys,x0,str,ts] = Three_Tank(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts] = mdlInitializeSizes;
case 1,
sys = mdlDerivatives(t,x,u);
case 2,
sys = mdlUpdate(t,x,u);
case 3,
sys = mdlOutputs(t,x,u);
case 4,
sys = mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys = mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
I am getting this error
Input argument "flag" is undefined.
Error in ==> Three_Tank at 3 switch flag
Error in ==> load_system at 34 feval(sys);
Error in ==> getLinNormalModeBlocks at 22 load_system(mdl);
Error in ==> dlinmod at 107 [normalblks,normalrefs] = getLinNormalModeBlocks(model);

 Accepted Answer

Your function is not wrong. I think the problem is related to the way the function is called. The error indicates a call like
[sys,x0,str,ts] = Three_Tank(t,x,u)

6 Comments

sorry Friedrich,
still it's not working.
It must be something like this. look at this
function repro( x,y,flag )
switch flag
case 1
disp('1')
otherwise
disp('otherwise')
end
end
>> repro(1,2,1)
1
>> repro(1,2)
??? Input argument "flag" is undefined.
Error in ==> repro at 3
switch flag
Jan
Jan on 8 Jul 2011
@Krishna: The error message says, that the 4th input "flag" is not defined. You call this function by "feval(sys)" - I assume "sys" is the function handle an you submit no inputs, but Three_Tank needs 4 inputs.
Therefore I think Friedrichs answer is correct. +1
@Friedrich: was that the episode where Homer had the crayon removed?
yes it was. its a screen from the scene where homer tries to say the Pythagorean theorem and fail totally.
Excelllllent /...\

Sign in to comment.

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!