matlab 多脚本,MATLAB(二)脚本

补充:

help xxx,打印出函数注释的文本

创建函数文件,左上角菜单新建-->函数

主函数和子函数,每个脚本的第一个函数是主函数,后面定义的函数是该主函数的子函数,可以从命令行或其它函数文件外部调用主函数但不能调用子函数。子函数仅仅对函数文件中的主函数和其它子函数可见。

function [x1,x2] = quadratic(a,b,c) %主函数

%this function returns the roots of

% a quadratic equation.

% It takes 3 input arguments

% which are the co-efficients of x2, x and the

%constant term

% It returns the roots

d = disc(a,b,c);

x1 = (-b + d) / (2*a);

x2 = (-b - d) / (2*a);

end % end of quadratic

function dis = disc(a,b,c) %子函数

%function calculates the discriminant

dis = sqrt(b^2 - 4*a*c);

end % end of sub-function

函数嵌套

可以在一个函数的主体内定义另一个函数。这样的函数被称为嵌套函数。嵌套函数包含任何其他函数的部分或全部组件。

嵌套函数在另一个函数的范围内定义,并且它们共享对包含函数的工作空间的访问。

嵌套函数遵循以下语法 -

function x = A(p1, p2)

...

B(p2)

function y = B(p3)

...

end

...

end

示例

下面来重写quadratic函数,从上一个例子来看,然而这次disc函数将是一个嵌套函数。

创建一个函数文件quadratic2.m并在其中键入以下代码 -

function [x1,x2] = quadratic2(a,b,c)

function disc % nested function

d = sqrt(b^2 - 4*a*c);

end % end of function disc

disc;

x1 = (-b + d) / (2*a);

x2 = (-b - d) / (2*a);

end % end of function quadratic2

私有函数

在当前工作路径下新建一个文件夹叫private(名字固定),工作路径里的脚本可以调用此private文件夹里的内容,其它路径不行。

在命令窗口也无法调用,但是可以 help 函数名 来查看注释。

全局变量

用global声明

全局变量可由多个函数共享。 为此,需要在所有函数中声明变量为全局变量。

如果要从基本工作区访问该变量,则在命令行中声明该变量。

全局声明必须在函数实际使用变量之前进行。 将大写字母用于全局变量的名称是一个很好的做法,以区别于其他变量。

如一个函数

function avg = average(nums)

global TOTAL //全局变量

avg = sum(nums)/TOTAL;

end

在命令行用时

global TOTAL;

TOTAL = 10; //先声明

n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];

av = average(n)