首页 > 编程知识 正文

matlab中定义全局变量的命令,matlab如何设置全局变量

时间:2023-05-06 17:24:11 阅读:268091 作者:3515

1. 用global定义全局变量,在子函数中也用global申明一下; 不推荐

2. 用evalin与assignin进行变量空间之间数据通讯,具体的help 之

3. 用 save load通过文件传递。 一般不采用,但是对于大量数据传递而不用参数的时候还是挺方便

4. 如果是gui,通过appdata,userdata ,guidata都可以

5. assignin与evalin

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

assignin为工作空间的变量指派值,其语法为:

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

evalin实现在工作空间中某个表达式字符串,并将结果返回,其语法为:

evalin(WS,'expression'),其中,WS为工作空间名称,'expression'为表达式符号串。

利用assignin与evalin指令,可以实现不同M文件主函数与子函数的工作空间变量的共享,这将在以后的M函数编写中详细讲到。在这里仅仅对基本工作内部的操作做一个简单示例。

例:

clear; %清空当前工作空间

a=3; % 在基本工作空间创建一个变量

assignin('base','a',5); % 为该变量指派新的值

a % 查看现在该变量的值

a =

5

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

b =

17

飞艇稳赚不赔的打法lin(WS,'expression'),其中,WS为工作空间名称,'expression'为表达式符号串。

利用assignin与evalin指令,可以实现不同M文件主函数与子函数的工作空间变量的共享,这将在以后的M函数编写中详细讲到。在这里仅仅对基本工作内部的操作做一个简单示例。

例:

clear; %清空当前工作空间

a=3; % 在基本工作空间创建一个变量

assignin('base','a',5); % 为该变量指派新的值

a % 查看现在该变量的值

a =

5

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

b =

17

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。