漂泊 发表于 2009-3-12 21:47

S函数怎么调用M文件?

M文件整个调用的顺序是什么样的啊?
我在simulink建模框里组建了timestwo模型。但是在matlab里运行它的M文件的时候,提示出错,提示说没有定义flag
程序是这样的:
function = timestwo(t,x,u,flag)
switch flag,
case 0
    =mdlInitializeSizes;
case 3
    sys=mdlOutputs(t,x,u);
case { 1, 2, 4, 9 }
    sys=[];
otherwise
    error(['Unhandled flag = ',num2str(flag)]);

end
function = mdlInitializeSizes()

sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs   = -1;% dynamically sized
sizes.NumInputs      = -1;% dynamically sized
sizes.DirFeedthrough = 1;   % has direct feedthrough
sizes.NumSampleTimes = 1;

sys = simsizes(sizes);
str = [];
x0= [];
ts= [-1 0];
function sys = mdlOutputs(t,x,u)

sys = u * 2;

运行后提示的错误是:
??? Input argument "flag" is undefined.
Error in ==> timestwo at 2
switch flag,
请问这是怎么回事啊?难道是我不应该在matlab里运行程序吗?该怎么改呢?急:'(

yufeng 发表于 2009-3-13 08:53

s函数不是直接运行的 他是在simulink里调用的
页: [1]
查看完整版本: S函数怎么调用M文件?