您的位置:首页 > 其它

实现基本工作空间和函数之间数据的相互调用

2011-02-14 16:08 531 查看
[a1, a2, ...] = evalin(ws, expression);

在工作空间ws中执行expression命令或表达式,并将执行的结果保存到变量a1、a2、...中。

函数的调用方法如下所示:

v = evalin('base', 'var'); %把基本工作空间中的变量var的值赋给局部变量v。

v = evalin('base', 'who'); %查询基本工作空间中的变量名称,并把变量名称保存到v数组中

举例:调用基本工作空间中的变量来在界面上绘制图形。

复制内容到剪贴板
代码:
首先在基本工作空间中产生x和y变量:

>> x=0:pi/50:2*pi;

>>y=sin(x);

然后在函数M文件中调用这些数据来在界面上绘制曲线:

function myfunc

hf=figure('units','normalized','name','evalin example','position',[0.4 0.3 0.4 0.3]);

haxes=axes('parent',hf,'units','normalized','position',[0.1 0.1 0.8 0.8]);

%取得基本工作空间中的变量的值,保存到xdata和ydata中

xdata=evalin('base','x');

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

% 在指定的坐标轴中绘图
axes(haxes);

plot(xdata,ydata);


assignin:将函数M文件中的变量的值传给指定的工作空间中的变量

assignin(ws, 'var', val);

将变量val的值赋给工作空间ws中的变量var,如果变量var在工作空间中不存在,则创建该变量。

例如:

在上述myfunc函数的末尾添加如下语句,即可以在基本工作空间中产生新的变量valueX和valueY,并把函数中的xdata和ydata变量的值赋给valueX和valueY:

复制内容到剪贴板
代码:
assignin('base','valueX',xdata);

assignin('base','valueY',ydata);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐