MATLAB函数- Matlab教程
函数是指一系列语句一起执行任务。 在MATLAB中,函数在单独的文件中定义。 文件函数的文件名必须相同。
函数在自己的工作区中操作。 这也称为本地工作区,独立工作区,可从MATLAB命令提示符访问。 这是一个称为基本工作区的变量。
函数可以接受多个输入参数,并返回多个输出参数
函数语句的语法如下:
function [out1,out2,outn]=myfun(in1,in2,in3,inN ) )。
范例
以下函数的名称必须为mymax,书面形式,一个文件名必须为mymax.m。 参数需要五个数字,返回最大的数字。
创建一个名为mymax.m的函数文件,然后输入以下代码:
功能最大=my max (n1、n2、n3、n4、n5 ) )。
% thisfunctioncalculatesthemaximumofthe
% five numbers given as input
max=n1;
是if(N2max )
max=n2;
结束
是if(n3max )
max=n3;
结束
是if(n4max )
max=n4;
结束
是if(n5max )
max=n5;
结束
函数的第一行以function关键字开头。 指示函数的名称和参数的顺序。 在我们的示例中,mymax函数有五个输入参数和一个输出参数。
在评论文章功能之后提供的帮助文本。 要打印这些线条,请输入:
help mymax
MATLAB执行上述语句并返回以下结果:
thisfunctioncalculatesthemaximumofthe
five numbers given as input
可以按如下方式调用此函数:
my max (34,78,89,23,11 ) ) ) ) )。
MATLAB执行上述语句并返回以下结果:
ans=
89
匿名函数
匿名函数在单个MATLAB语句中定义内联函数,就像传统的编程语言一样。 它由单个MATLAB表达式和任意数量的输入和输出参数组成。
可以在MATLAB命令行或函数或脚本中定义匿名函数。
这种方法可以创建简单的函数,而无需创建文件。
创建匿名函数表达式的语法
f=@(Arglist ) expression
范例
此示例创建一个名为power的匿名函数。 这需要两个数字作为输入,并返回第二个数字到第一个数字的幂。
创建脚本文件并输入以下代码:
power=@(x,n ) x.^n;
结果1=功率(7,3 ) ) ) ) ) ) ) ) ) ) ) ) )。
结果2=功率(49,0.5 ) ) ) ) ) ) ) ) ) ) ) )。
结果3=电源(10、-10 ) ) ) ) ) ) ) ) ) ) )。
result4=电源(4.5、1.5 ) ) ) ) ) ) )。
运行文件时,将显示以下内容:
result1=
343
result2=
7
result3=
1.0000e-10
result4=
9.5459
主要和子函数
在文件中,必须定义非匿名函数。 每个函数的文件都包含任意数量的可选子函数的主函数,所需的主函数首先出现。
可以调用主要函数的文件,除其定义外,可以从命令行或其他函数调用,但子功能不能称为命令行、其他函数或外部函数文件。
子函数中的文件。 定义主要函数和其他函数。
范例
写一个计算一元二次方程的根,称为quadratic函数。 该函数需要三个输入端子、二次系数和线性合作效率高的常数项。 回到路线上。
函数文件quadratic.m包含主要的quadratic函数和子函数disc,用于计算判别。
创建函数文件quadratic.m,然后输入以下代码:
function [x1,x2]=quadratic(a,b,c ) )。
%this function returns the roots of
% a品质等级。
% it takes 3输入参数
% which are the co-efficients of x2,x and the
%常数
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
可以从命令提示符调用上面的函数为:
quadratic(2,4,-4)
MATLAB将执行上面的语句,并返回以下结果:
ans =
0.7321
嵌套函数
在这个机体内另一个函数,可以定义函数。这些被称为嵌套函数。嵌套函数包含任何其他函数的任何或所有的组件。
嵌套函数被另一个函数的范围内定义他们共享访问包含函数的工作区。
嵌套函数的语法如下:
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
可以从命令提示符调用上面的函数为:
quadratic2(2,4,-4)
MATLAB将执行上面的语句,并返回以下结果:
ans =
0.7321
私有函数
一个私有函数是一个主要的函数,是只看得见一组有限的其它函数。如果不想公开的执行的一个函数,可以创建私有函数。
私有函数驻留特殊的名字私人的子文件夹中。
他们是可见的,只有在父文件夹的函数。
例子
让我们重写quadratic 函数。然而,这时候,计算的判别式disc 函数,这是一个私有函数。
创建一个子文件夹命名为私人工作目录。它存储在以下函数文件disc.m:
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
在工作目录,并创建一个函数quadratic3.m中输入下面的代码:
function [x1,x2] = quadratic3(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 quadratic3
可以从命令提示符调用上面的函数为:
quadratic3(2,4,-4)
MATLAB将执行上面的语句,并返回以下结果:
ans =
0.7321
全局变量
全局变量可以共享由一个以上的函数。对于这一点,需要将变量声明为全局在所有的函数可使用。
如果想访问该变量从基工作区,然后在命令行声明的变量。
全局声明必须出现在变量中实际上是使用功能。这是一个很好的做法是使用大写字母为全局变量的名称,以区别于其他变量。
例子
让我们创建一个函数文件名为average.m和输入下面的代码:
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)
当您运行该文件,就会显示以下结果:
av =
35.5000
powered by Gitbook
该教程制作时间: 2016-01-26 09:36:04