打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Matlab里evalin和assignin的用法

assignin与evalin
   MATLAB通常的基本工作空间是'base'空间。MATLAB在程序运行过程中,将为每个函数分配它自己的函数工作空间(从基本空间中分割出的一块,以函数名作为其工作空间名),各个工作空间之间的变量是不能够直接引用的,在函数退出之后,该函数空间也就立即被注销。因此,对于函数文件,运行结果除输出变量返回到基本工作空间或者其父工作空间(调用该函数的程序的工作空间)之外,其他中间变量不在基本工作空间或者其父工作空间保留。而对于脚本M文件,其工作空间与基本工作空间'base'是共享的,其运算过程中所用到的中间变量也将在基本工作空间'base'中保留。


assignin为工作空间的变量指派值,其语法为:
assignin(WS,'name',V),其中,WS为工作空间名称,'name'为变量名,V是为该变量指派的值。


evalin实现在工作空间中某个表达式字符串,并将结果返回,其语法为:
evalin(WS,'expression'),其中,WS为工作空间名称,'expression'为表达式符号串。


利用assignin与evalin指令,可以实现不同M文件主函数与子函数的工作空间变量的共享

例:

function test
clear;    %清空当前工作空间
a=3;     % 在基本工作空间创建一个变量
assignin('base','a',5); % 为该变量指派新的值

b = evalin('base','3*a+2');%在基本工作空间中计算式子3*a+2的值并将结果赋予b   

end 
   % 查看现在该变量的值   
a =
    


b =
    17

http://hi.baidu.com/%CA%A9%D4%C6%CC%CE/blog/item/80519c2c74dd39eb8a1399e9.html

 

evalin功能很强大,可以运行不同工作区域里的Matlab任何命令:

evalin(ws,expression)

[a1, a2, a3, ...] =evalin(ws, expression)

 

ws:工作区域(default base)

expression:合法的matlab命令

 

比如想在运行函数同时,运行工作区域里一个赋值命令:

evalin('base','a=1');

看一下,是不是你的workspace里面有了一个a的变量。

 

http://www.ilovematlab.cn/viewthread.php?tid=11196&highlight=evalin

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab的存储空间
【matlab-1】工具箱、窗口、变量的存储与加载、帮助 - I come, I see,...
第1章 MATLAB语言概述
Matlab:成功解决Undefined function or variable "B"
matlab中nargin函数的用法
Matlab心得及学习方法(不断更新)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服