matlab怎样定义全局变量,Matlab如何定义公共变量
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
matlab定义函数表达式b = evalin('base','3*a+2') %在基本⼯作空间中计算式⼦3*a+2的值并将结果赋予b
b =
17
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论