matlab中运用matlab的function函数为什么输出只有一个值

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
function在MATLAB中怎么用
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB中如何实现输出一个函数表达式
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口请教Matlab关于S函数多输入和多输出的问题
我的图书馆
请教Matlab关于S函数多输入和多输出的问题
要编写一个s函数,有两个输入,三个输出,输入为参考电流Is和电角度angle,输出为三相电流Ia,Ib,Ic,问:
1、函数的外部使用MUX模块将Is和angle连接起来一同接入s-function函数模块吗?
2、此函数的s-function parameter怎么设置?(Is和angle外部的子系统计算结果给定)
3、对于函数程序中的所涉及的五个参数如何声明?(我的这个老说我没定义Is)
function [sys,x0,str,ts] = test_0105(t,x,u,flag,Is,angle)
switch flag,
[sys,x0,str,ts,Ia,Ib,Ic]=mdlInitializeS
sys=mdlDerivatives(t,x,u);
sys=mdlUpdate(t,x,u);
sys=mdlOutputs(t,x,u,Is,angle);
sys=mdlGetTimeOfNextVarHit(t,x,u);
sys=mdlTerminate(t,x,u);
error(['Unhandled flag = ',num2str(flag)]);
function [sys,x0,str,ts,Ia,Ib,Ic]=mdlInitializeSizes
sizes.NumContStates
sizes.NumDiscStates
sizes.NumOutputs
sizes.NumInputs
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
% at least one sample time is needed
sys = simsizes(sizes);
function [Ia,Ib,Ic]=mdlOutputs(t,x,u,Is,angle)
pos=angle-floor(angle/2/pi)*2*
if pos&pi/3
Ia=Is;Ib=-Is;Ic=0;
elseif pos&2*pi/3
Ia=Is;Ib=0;Ic=-Is;
elseif pos&pi
Ia=0;Ib=Is;Ic=-Is;
elseif pos&4*pi/3
Ia=-Is;Ib=Is;Ic=0;
elseif pos&5*pi/3
Ia=-Is;Ib=0;Ic=Is;
Ia=0;Ib=-Is;Ic=Is;
问题太多,就不用一一指正了,以下程序已经经过调试成功。
function [sys,x0,str,ts] = test_0105(t,x,u,flag)
switch flag,
[sys,x0,str,ts]=mdlInitializeS
sys=mdlOutputs(t,x,u);
case {2,4,9},
error(['Unhandled flag = ',num2str(flag)]);
function [sys,x0,str,ts]=mdlInitializeSizes
sizes.NumContStates
sizes.NumDiscStates
sizes.NumOutputs
sizes.NumInputs
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
function sys=mdlOutputs(t,x,u)
Is=u(1);angle=u(2);
pos=rem(angle,2*pi);
if pos&pi/3
Ia=Is;Ib=-Is;Ic=0;
elseif pos&2*pi/3
Ia=Is;Ib=0;Ic=-Is;
elseif pos&pi
Ia=0;Ib=Is;Ic=-Is;
elseif pos&4*pi/3
Ia=-Is;Ib=Is;Ic=0;
elseif pos&5*pi/3
Ia=-Is;Ib=0;Ic=Is;
Ia=0;Ib=-Is;Ic=Is;
sys=[Ia Ib Ic];
问题回答:
2.Is和angle已经通过mux模块集中传送给s-function,不需要通过s-function parameter赋值。在程序里面用u(1) u(2)就可以得到输入的值
3.你的程序都是从外部计算之后送给s-function的,不用定义参数。
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢查看: 31232|回复: 13|关注: 0
请教Matlab多个输出变量的函数的问题
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
我写了一个M文件
function [y,z]=AllT(x)& && &
& && &y=x+5;
& && &z=x^2;
让在命令窗口调用这个函数
显示的结果是7
问题:这里的7应该是函数里面y的值,为什么没有z的值了,我理想的结果应该是7 4也就是把ALLT的两个输出变量赋值给s,请各位指正。
<h1 style="color:# 麦片财富积分
回复 1# lp4545 的帖子
在命令窗口输
[s,z]=ALLT(x)
论坛优秀回答者
关注者: 114
如果要输出两个值,就要严格按照函数定义的输出格式来写
你只写一个,默认就是第一个输出值
[s1,s2]=ALLT(x)
就会显示两个结果了
About me:/article-43-1.html
<h1 style="color:#0 麦片财富积分
我这辈子只有两件事不会,就是这也 ...
关注者: 32
默认情况输出的就是第一个值y
宝剑锋从磨砺出,梅花香自苦寒来。
<h1 style="color:# 麦片财富积分
谢谢楼上两位的帮助,的确是你们说的处理方法。
<h1 style="color:#5 麦片财富积分
关注者: 68
函数定义要改动一下才能满足
function [y vargout] = AIIT(x)
y = x+5;
z = x^2;
if nargout == 1
& & y = [y z];
elseif nargout == 2
& & vargout =
else
& & error('wrong');
end
复制代码
<h1 style="color:#5 麦片财富积分
关注者: 68
回复 6# lskyp 的帖子
调试结果
[y z] = AIIT(x)
&& s=AIIT(x)
& &&&7& &&&4
复制代码
<h1 style="color:#5 麦片财富积分
关注者: 68
回复 7# lskyp 的帖子
我想楼主应该是这个意思。
<h1 style="color:# 麦片财富积分
lskyp 发表于
我想楼主应该是这个意思。
学习了,以前还真没这样想过~~~
<h1 style="color:# 麦片财富积分
站长推荐 /2
利用MATLAB/Simulink开发智能机器人系统
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(52589)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_085070',
blogTitle:'matlab function的用法',
blogAbstract:'
1.函数句柄(Function handle)
函数句柄(Function handle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。
MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数的可用性和独立性。例如:',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:3,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:3,
recommendCount:8,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 matlab function 的文章

更多推荐

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

点击添加站长微信