声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1340|回复: 1

[基本模块类] S函数怎么调用M文件?

[复制链接]
发表于 2009-3-12 21:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

end
function [sys,x0,str,ts] = 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里运行程序吗?该怎么改呢?急:'(
回复
分享到:

使用道具 举报

发表于 2009-3-13 08:53 | 显示全部楼层
s函数不是直接运行的 他是在simulink里调用的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 00:58 , Processed in 0.056117 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表