Matlabmatlab二维插值函数数莫名报错

查看: 3491|回复: 16|关注: 0
最简单的s函数报错
<h1 style="color:# 麦片财富积分
新手, 积分 17, 距离下一级还需 33 积分
s函数前段日子使用时全都正确,最近重新做时,不知道是不是自己手生了,弄了一个最简单的s函数例子也报错,具体s函数程序如下function [sys,x0,str,ts] =test_sFunction(t,x,u,flag)
switch flag,& && && && && &&&
&&case 0,& && && && && && &&&
& & [sys,x0,str,ts,simStateCompliance]=mdlInitializeS
&&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
& & DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes&&
& && && && && && && && && &&&
sizes =& && && &&&
sizes.NumContStates&&= 0;& &
sizes.NumDiscStates&&= 0;&&
sizes.NumOutputs& &&&= 1;& &
sizes.NumInputs& && &= 1;&&
sizes.DirFeedthrough = 1;& &
sizes.NumSampleTimes = 1;& &
sys = simsizes(sizes);& && &
x0=[];& && && && && && && &&&
str = [];& && && && && && &
ts&&= [0 0];& && && && && &
simStateCompliance = 'UnknownSimState';
function sys=mdlDerivatives(t,x,u)& &
sys = [];& && && && && && &
function sys=mdlUpdate(t,x,u)& && &
sys = [];& && && && && && &
function sys=mdlOutputs(t,x,u)& && &&&
&span style=&line-height: 1.5;&&sys =&/span&
function sys=mdlGetTimeOfNextVarHit(t,x,u)&&
& && && && && && && && && &
sys = [];
function sys=mdlTerminate(t,x,u)
sys = [];
复制代码不要被一上一大串程序吓到了,都是最简单的,最主要的程序语句就一句:sys =复制代码simulink中模型如下的截图。
就是这么一个简单的输出等于输入的s函数,还报错,报错内容为:
& && && && && & Error evaluating parameter 'FunctionName' in ''
& && && && && & Undefined variable
or class .
其中,test_S是simulink模型文件名,S-Function是S函数模块名,test_sFunction.m是s函数m文件名。
论坛帖子、百度、学习资料查阅都试过,一直找不出错误所在,哪位朋友能给点提示,在这先谢谢了
帖子最佳答案
关注者: 163
你的函数在路径上吗?
帖子最佳答案
关注者: 328
我用楼主的S函数建立模型是可以运行的。
楼主要保证S函数文件存放在Matlab的搜索路径下,简单的作法就是跟模型放在一起,都在当前路径下。
《Simulink仿真及代码生成技术入门到精通》已经由北航出版社出版:/.html
<h1 style="color:# 麦片财富积分
我用楼主的S函数建立模型是可以运行的。
楼主要保证S函数文件存放在Matlab的搜索路径下,简单的作法就是跟 ...
多谢版主了,这个讲法我在网上也看到过,也针对性的修改过,还是不行,不过既然版主成功了,那代表文件本身没问题,还是可能搜索路径这些软件问题
<h1 style="color:# 麦片财富积分
你的函数在路径上吗?
刚重新检查了一遍,的确在搜索路径上,但还是不行,将路径恢复成default,再加入文件路径,重新仿真,还是不行。版主,有没有什么其他可能性啊
帖子最佳答案
关注者: 328
|此回复为最佳答案
多谢版主了,这个讲法我在网上也看到过,也针对性的修改过,还是不行,不过既然版主成功了,那代表文件本 ...
S函数代码本身没有问题,还有一个可能就是你的模型中S函数模块的填写有问题,请截图贴一下。
《Simulink仿真及代码生成技术入门到精通》已经由北航出版社出版:/.html
<h1 style="color:# 麦片财富积分
S函数代码本身没有问题,还有一个可能就是你的模型中S函数模块的填写有问题,请截图贴一下。 ...
这个是s函数模块双击后的界面,版主,实在太感谢你了,我试着将.m后缀去掉,就仿真成功了
帖子最佳答案
关注者: 328
这个是s函数模块双击后的界面,版主,实在太感谢你了,我试着将.m后缀去掉,就仿真成功了 ...
是咯,有时候细节决定成败。
《Simulink仿真及代码生成技术入门到精通》已经由北航出版社出版:/.html
<h1 style="color:# 麦片财富积分
是咯,有时候细节决定成败。
的确是这样,以前没出过这样的问题,其实我随便新建一个s函数模块,也能看到填写m文件名不需要后缀,但就是遗漏了这一点。很感谢版主,不然进度又要推迟了
<h1 style="color:# 麦片财富积分
关注者: 1
不加.m报错是怎么回事。。。
站长推荐 /2
Powered byMatlab中插值函数汇总和使用说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Matlab中插值函数汇总和使用说明
上传于||文档简介
&&M&#8203;a&#8203;t&#8203;l&#8203;a&#8203;b&#8203;中&#8203;插&#8203;值&#8203;函&#8203;数&#8203;汇&#8203;总&#8203;和&#8203;使&#8203;用&#8203;说&#8203;明
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢怎样用matlab插值得到函数表达式_百度知道
怎样用matlab插值得到函数表达式
10]? 谢谢; y1=interp1(x& x=[1;&gt:1,y,&#39;& &gt,x1;& y=[2:2; &gt:20];&)
8 10 12 14 16 18 20 然后怎样将所求得的函数表达式表示出来; x1=x;spline&#39; &gt
说明,具体涵义如下:1;) x1不要;spline&#39,&#39,不要&#39;pp&#39;) 不是pp=interp1(x,直接就y1=interp1(x,y,&#39;,得到的是蕴含了分段多项式函数的结构pp:10];: interp1得到的函数其实是分段函数,&#39,2]的函数表达式是2(x-1)+2______________________ pp=interp1(x;spline&#39,x1: 假设coefs的第i行为)就可以了; y=[2,y;spline&#39:2.breaks coefs=pp,&#39,&#39;pp&#39,n]的函数表达式就是a(x-m)^3+b(x-m)^2+c(x-m)+d 下面是例子 coefs第一行是[0 0 2 2]:20],&#39; pp=interp1(x;pp&#39,y;spline&#39,y。 你要直接得到在x1处的值,breaks前两个元素是1和2 就代表在区间[1;) breaks=pp。 函数的全部信息全部都在pp里 让我们看一下其breaks分量和coefs分量,x1,他们蕴含着函数表达式x=[1;pp&#39;,breaks的第i和i+1个元素为m和n 那么在区间[m,&#39
其他类似问题
为您推荐:
插值的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁matlab(14)
在使用aviread函数时报:
Warning: AVIREAD will be removed in a future release. Use
MMREADER instead.&
在matlab论坛里给出的解决方案是:
两个可能的对策:
1. 按照报错信息,找到&Mathworks Technical Solution 1-4G50QZ&去看看怎么回事。
2. 试试mmreader。提醒,不是把函数名换掉就完事了,这两个的用法不一样,请看mmreader的帮助文档
win7里没有indeo5 解码器,indeo5是xp里的压缩&#26684;式
你可以试试兼容模式运行matlab
32-bit系统可以试试cmd 运行 regsvr32 ir50_32.dll
没有解码器的话,即使你使用mmreader 或者 VideoReader 也会出现报错的
如果avi文件无压缩的话用兼容模式运行Matlab(如何兼容模式运行Matlab见我的文章“”),如果avi文件压缩了的话使用winavi转换一下文件&#26684;式试一下,可以就ok不可以就兼容模式,更多问题待续。。。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6969次
排名:千里之外
原创:39篇
转载:22篇
(3)(7)(3)(1)(1)(11)(11)(13)(1)(1)(14)}

我要回帖

更多关于 matlab 插值函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信