matlab arguements,MATLAB中为什么会错误Not enough input arguments.

书里面的一个FM0编码的m文件,文件名fm0code.m,编译出错:

Error using fm0code (line 2)

Not enough input arguments.

帮看看怎么回事

代码:

function [sys,x0,str,ts]=fm0code(t,x,u,flag,p)

switch flag,                                     %判断仿真状态

case 0,[sys,x0,str,ts]=mdlInitializeSizes(p); %初始化

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(['Unhandlede flag=',num2str(flag)]);%错误处理

end

function [sys,x0,str,ts]=mdlInitializeSizes(p)      %定义基本属性

sizes=simsizes;                                  %返回空的SIZE结构

sizes.NumContStates=0;                            %连续状态数目

sizes.NumDiscStates=2;                           %离散状态数目

sizes.NumOutputs=1;                              %输出端口数目

sizes.NumInputs=1;                               %输入端口数目

sizes.DirFeedthrough=1;                          %是否直通

sizes.NumSampleTimes=1;                          %采样周期数目

sys=simsizes(sizes);

x0=[0;0];                                        %初始化离散状态

str=[];

ts=[p 0];

function sys=mdlDerivatives(t,x,u)               %计算连续状态变量的导数

sys=[]

function sys=mdlUpdate(t,x,u)       %更新离散状态变量、采样时间和最大步长

x(1)=x(1)+1;

if rem(x(1),2)==0

if x(2)==1

x(2)=0

else x(2)=1;

end

else

if u==0

if x(2)==0

x(2)=1;

else x(2)=0;

end

end

end

sys=x;

function sys=mdlOutputs(t,x,u)                 %计算S函数输出

sys=x(2);

function sys=mdlGetTimeOfNextVarHit(t,x,u)     %计算下一次绝对时间

sampleTime=1;

sys=t+sampleTime

function sys=mdlTerminate(t,x,u)               %仿真结束

sys=[];

书里说,运行时将MATLAB主窗口中的路径修改为M文件存放的路径,并在MATLAB命令窗口中输入p=0.5即可调用本m文件。可是就是出错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值