登录论坛

查看完整版本 : [求助]全局变量


xjjjanet
2008-10-08, 22:58
:confused:
程序:
clc
clear
a=1;b=2;c=3;
jieguo=f1(3)*a+f2(2)*b+c;%f1和f2是自定义函数。

function m=f1(x)
a=1;b=2;c=3;
m=a*(b*x)^2/c;

function n=f2(x)
a=1;b=2;c=3;
n=x^3*b^2/(a*c);

a,b,c是三个参数,在主程序和f1、f2里都要用到。
上面那个程序,如果的a,b,c中某一个值要变,则三个文件里的参数值都要改一遍。可不可以只改一个,其余两个文件中设置的参数在多个函数里赋一样的值呢?
原本以为全局变量是可以的。于是改为:
clc
clear
globe a b c
a=1;b=2;c=3;
jieguo=f1(3)*a+f2(2)*b+c;%f1和f2是自定义函数。

function m=f1(x)
m=a*(b*x)^2/c;

function n=f2(x)
n=x^3*b^2/(a*c);

结果是 error:f1中的a没有定义。应该是我理解错了。
哪位大大帮忙解释一下。这个,该怎么办?

一个人的旅行
2008-10-09, 16:39
我也是新手

首先你那个全局变量写错了,可能是你输入错误,应该是global

然后在子函数里再次声明一下全局变量应该就可以了

我刚刚试过了

xjjjanet
2008-10-09, 21:30
是我写错了。汗。。。谢谢。以后提问题之前先检查一遍。谢谢ls。我也是新手。。。呵呵。