assignin与evalin用法理解

 

 

 

 

局限性

evalin 不可递归用于计算表达式。例如,形式为 evalin('caller', 'evalin(''caller'', ''x'')') 的序列无效。

提示

MATLAB 基础工作区是从 MATLAB 命令行看到的工作区(不在调试器中时)。调用方工作区是调用当前运行函数的函数工作区。请注意,基础工作区(base)和调用方工作区(caller)在从 MATLAB 命令行调用的函数上下文中是等效的。

evalin('caller', expression) 只计算调用方工作区中的变量,它不计算调用方中的函数。因此,不能使用 evalin 构造调用方中定义的函数句柄。

在用 dbup 或 dbdown 更改本地工作区上下文后,如果在 MATLAB 调试器中使用 evalin('caller', expression),则 MATLAB 在从当前工作区上下文堆栈中高一级的函数上下文中计算表达式。

 

参考https://ww2.mathworks.cn/help/matlab/ref/evalin.html

参考https://zhidao.baidu.com/question/580592059.html

多看帮助文档

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原创毕业设计完工贴出来和大家分享一下吧-metro_simulation.rar 我的毕业设计是做一个地铁列车运行过程的仿真系统。当然,不是很复杂。在simulink里面建立模型,然后用GUI对其中变量进行赋值,并通过GUI中的一段函数对制动点进行试凑,最后显示出列车的速度-路程曲线,行驶总路程和时间。 ------------------------------------------- 现将GUI中所调用的功能及其实现方法整理如下: 1、点击按钮,切换GUI。这个现实起来很简单,只要在按扭的callback函数里写上run; close;即可。 2、把GUI中edit框中的数值赋给simulink中对应的变量。这个问题一开始困扰了我好一段时间,看了很多例子都不行,有人说用set_param,但我用了之后总是会报错说变量没有定义。其实,只需要用等号对变量名进行赋值即可。例如:simulink中某个变量为M,edit框的确Tag为name,那么相应的代码就是M=str2double);这里的str2double是将字符串转变为double型的双精度数。调用simulink前写上options = simset;再进行调用sim; 3、从excel中读取数据,并将其赋给对应的edit框。这个在math大哥的视频里已经有详细解析了,这里就不缀述了。 4、将GUI中的参数保存进excel文件中,这个与读取过程类似,不过用的函数是uiputfile和xlswrite,具体的到matlab帮助里看一下就可以了,里面写得非常清楚。 5、将最后的仿真结果绘制出来。这个实现起来相对比较麻烦。首先在simulink里要添加"to workspace"模块(注意save format一定要选择Array)。然后在调用simulink仿真的语句后面,用assignin函数将"to workspace"输出的数据保存在workspace中的向量中,例如assignin; result是输出的结果,k1是保存的向量名。在调用k1进行画图的时候,需要用evalin函数将k1从工作空间中读取出来,如k2=evalin。 如果输出的结果是最终的一个数,而非一个数组,则可以用result来获取,这里的t是仿真时间长度,step为仿真步长。 ---------------------- 我用到的GUI主要部分就是这些,希望能对大家有些帮助。GUI入手的确比较困难,但只要多看几个例子,问题就会迎仞而解。ilovematlab论坛的确给我们提供了一个良好的平台,从这里学到了很多有用的东西。 ---------------------------------- ---------------------------------- 附件中是我的源程序,运行时先从preface开始。 1.jpg 2.jpg 3.jpg 4.jpg

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值