当前位置:网站首页 > MATLAB编程 > 正文

matlab函数的用法(matlab函数的函数)



函数是一起执行任务的一组语句。在MATLAB中,函数是在单独的文件中定义的。文件名和函数名应该相同。

函数在其自己的工作空间(也称为本地工作空间)中对变量进行操作,与在MATLAB命令提示符下访问的工作空间(称为基本工作空间)不同。

函数可以接受多个输入参数,并且可以返回多个输出参数。

函数语句的语法是-

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

以下名为mymax的函数应写入名为mymax.m的文件中。它以五个数字作为参数,并返回最大的数字。

创建一个函数文件,命名mymax.m并在其中输入以下代码-

function max = mymax(n1, n2, n3, n4, n5) %此函数用于计算 %输入五个数字 max =  n1; if(n2 > max)    max = n2; end if(n3 > max)    max = n3; end if(n4 > max)    max = n4; end if(n5 > max)    max = n5; end

函数的第一行以关键字 function开头 。它给出了函数的名称和参数的顺序。在我们的示例中,mymax函数具有五个输入参数和一个输出参数。

函数语句后的注释行提供帮助文本。当您键入以下内容时,将打印这些行:

help mymax

MATLAB将执行上述语句并返回以下结果-

This function calculates the maximum of the    five numbers given as input

您可以将函数称为-

mymax(34, 78, 89, 23, 11)

MATLAB将执行上述语句并返回以下结果-

ans = 89

匿名函数就像传统编程语言中的内联函数一样,是在单个MATLAB语句中定义的。它由一个MATLAB表达式以及任意数量的输入和输出参数组成。

您可以直接在MATLAB命令行或在函数或脚本中定义匿名函数。

这样,您可以创建简单的功能,而不必为其创建文件。

从表达式创建匿名函数的语法是

f = @(arglist)expression

在此示例中,我们将编写一个名为power的匿名函数,该函数将两个数字作为输入,并将第一个数字提高为第二个数字的幂。

创建一个脚本文件并在其中键入以下代码-

运行文件时,它显示-

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) %此函数返回 %二次方程。 %它需要3个输入参数 %x2,x和 %常数项 %它返回根 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) %函数计算判别式 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  %嵌套函数 d = sqrt(b^2 - 4*a*c); end   % 结束函数disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end   %结束函数 quadratic2

您可以从命令提示符处调用上述函数,如下所示:

quadratic2(2,4,-4)

MATLAB将执行上述语句并返回以下结果-

ans =  0.73205

私有函数是仅对有限的一组其他函数可见的主函数。如果不想公开函数function(s)的实现,可以将它们创建为私有函数。

私有函数位于具有特殊名称 Private 的子文件夹中。

让我们重写quadratic函数。不过,这一次,disc函数计算判别式,将是一个私有函数。

在工作目录文件夹中创建一个名为 private 的子文件夹,在其中存储以下函数文件 disc.m

function dis = disc(a,b,c) %函数计算判别式 dis = sqrt(b^2 - 4*a*c); end      %子函数结束

在您的工作目录中创建一个函数 quadratic3.m ,并在其中输入以下代码-

function [x1,x2] = quadratic3(a,b,c) % 这个函数返回 % 一元二次方程。 它需要3个输入参数 % 它们是 x2,x 和 % 常数项 % 它返回根 d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end      %结束 quadratic3

您可以从命令提示符处调用上述函数,如下所示:

quadratic3(2,4,-4)

MATLAB将执行上述语句并返回以下结果-

ans =  0.73205

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

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

全局声明必须在变量实际在函数中使用之前发生。最好将大写字母用作全局变量的名称,以将其与其他变量区分开。

让我们创建一个名为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.500
到此这篇matlab函数的用法(matlab函数的函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • matlab中ga函数输入参数太多(matlab输入参数过多报错)2025-10-17 14:54:09
  • matlab函数用法(matlab函数怎么用)2025-10-17 14:54:09
  • matlab中脚本和函数区别(matlab脚本和函数合起来运行)2025-10-17 14:54:09
  • matlab函数(matlab函数输入参数太多)2025-10-17 14:54:09
  • matlab函数怎么写(matlab 函数怎么写)2025-10-17 14:54:09
  • matlab函数输出多个变量(matlab function多输出)2025-10-17 14:54:09
  • matlab如何调用函数输出的多个变量(matlab function输出多个变量)2025-10-17 14:54:09
  • matlab函数(matlab函数速查手册)2025-10-17 14:54:09
  • matlab数学函数大全(matlab数学函数运算)2025-10-17 14:54:09
  • matlab函数的用法(matlab函数介绍)2025-10-17 14:54:09
  • 全屏图片