加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【转】Matlab里evalin和assignin的用法

(2012-05-31 15:19:12)
标签:

matlab

it

分类: Matlab(VC)

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


assignin为工作空间的变量指派值,其语法为:
assignin(WS,'name',V)

其中,WS为工作空间名称,'name'为变量名,V是为该变量指派的值。


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


利用assignin与evalin指令,可以。

例:

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

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

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

b
b = 17

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

evalin(ws, expression)

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

ws:工作区域(defaultbase)

expression: 合法的matlab命令

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

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

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有