Matlab函数间通过workspace进行数据共享的方法

在matlab应用中,函数间的数据共享很多时候是非常必要的。例如在sfunction的编写中,在更新函数中用到的一些中间变量需要在输出函数中用到。虽然这些变量也可以通过在输出函数中由输入和状态变量重新计算出来,但现将它们从更新函数中导出来更为快捷方便。为此需要先讲解两个函数  

     assignin('base','y',x);

     此函数的作用是:若基本工作空间(workspace)中没有变量y,则先在基本空间中定义这个变量,然后将变量x的值赋给它;若基本空间已经存在变量y,则直接将变量x的值赋给y

     z=evalin('base','y');

     这一条语句的作用是:将基本工作空间中的变量y赋给变量z;

     了解了上述两个函数的作用,若要将函数A中的变量x传入函数B的变量z,可以这样实现:在函数A中调用

                                    

     而在函数B中执行

                                     z=evalin('base','y');

     后边以一个S-Function的例子,对本文方法进行介绍。这个例的功能是在更新对状态x进行积分,并计算x^2,并将x^2和t(时间)的值记录到基本工作空间,在输出函数中再次计算x^2的值,然后将在更新函数中记录的值输出,并输出这个时候计算出的x^2的值,并将此时的时间也输出。

     由于S-Function的执行过程是先输出,后更新,在输出.....,因此当我们以常量1作为输入时,两组时间值是有些差别的。从而导致在更新函数中计算出的x^2和输出函数中的x^2有差别存在。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值