分享

跨空间变量传递

 youco流星 2014-05-15
当我们在写程序的时候,也许会遇到这样的问题,就是想在函数中调用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,北京航空航天大学出版社,张志涌编。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多