assignin与evalin
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
a =
b
b =
http://hi.baidu.com/%CA%A9%D4%C6%CC%CE/blog/item/80519c2c74dd39eb8a1399e9
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