当我们在写程序的时候,也许会遇到这样的问题,就是想在函数中调用workspace中的变量,或者想把函数中的变量传到workspace 中去,如何实现呢,下面的文章也许对你有用。首先我们看下,什么是Base workspace 和function workspace。当执行一个m文件时候,matlab会给每个函数都分配一个工作空间,称为函数工作空间,它是与基本工作空间分离的。在workspase brower 的stack属性中,可以访问上述两空间,当函数空间只在调试模式下可用,否则stack是灰色的。我们在workspase brower中看到的就是Base workspace,它保存了当前用户的使用变量。在做gui的时候我们想调用base 中的变量,或者想把当前空间的变量存到base 空间中,以下两种方法也许对你有用: 1. 跨空间计算串表达式的值 Evalin(‘workspace’,’exp1’) :在workspace指定的空间中求表达式exp1的值 Workspace可以取两个值:’base’和’caller’。 当取值为base时,表示计算eval(‘exp1’)将从基本工作空间中获得变量值; 当取值为caller时,表示计算eval(‘exp1’)将从主调函数工作空间中获得变量值。 2. 跨空间赋值 assignin(‘workspace’,’name’,value):把当前空间中的value赋值给workspace指定的空间中name变量。 例1:在当前函数中调用base空间中的bus变量。 Busline= evalin(‘base’,’bus’):将base 中的bus赋值给当前函数中的busline。 例2:将当前函数中的busline输出到base中名为bus的变量。 assignin(‘base’,’bus’,busline)。 上述资料参考于”精通 matlab6.5版”,北京航空航天大学出版社,张志涌编。 |
|
来自: youco流星 > 《matlab学习》