基础内容:https://blog.csdn.net/ncepu_Chen/article/details/103047811
补充:
- 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)
网友评论