MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧

在 MATLAB 中,我们可以通过多种方式调用 function 函数。function函数是声明函数名称、输入和输出。

MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧

MathWorks MATLAB R2024b MacOS Apple Silicon/Inter 中文正式免费版

  • 类型:商业效率
  • 大小:18.0GB
  • 语言:简体中文
  • 时间:2024-09-13

查看详情

语法:

function [y1,...,yN] = myfun(x1,...,xM)

说明:

function [y1,…,yN] = myfun(x1,…,xM) 声明名为 myfun 的函数,该函数接受输入 x1,…,xM 并返回输出 y1,…,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。

可以将函数保存在以下位置:

  • 只包含函数定义的函数文件中。文件的名称须与文件中第一个函数的名称一致。
  • 包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。

文件可以包含多个局部函数或嵌套函数。为提高可读性,可使用end关键字来表示文件中每个函数的末尾。以下情况下需要end关键字:

  • 文件中有任意函数包含嵌套函数。
  • 该函数是函数文件中的局部函数,并且文件中有局部函数使用end关键字。
  • 该函数是脚本文件内的局部函数。

示例

包含一个输出的函数

在名为 average.m 的文件中定义一个函数,该函数接受一个输入向量,计算各个值的平均值,然后返回单个结果。

function ave = average(x)    ave = sum(x(:))/numel(x); end

从命令行调用该函数。

z = 1:99;ave = average(z)ave =    50

包含多个输出的函数

在名为stat.m的文件中定义一个函数,该函数返回输入向量的均值和标准差。

function [m,s] = stat(x)    n = length(x);    m = sum(x)/n;    s = sqrt(sum((x-m).^2/n));end

从命令行调用该函数。

values = [12.7, 45.4, 98.9, 26.6, 53.1];[ave,stdev] = stat(values)ave =   47.3400stdev =   29.4124

脚本文件中的函数MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧处的值,并计算曲线下方从 0 到MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧的面积。包括一个局部函数,用于定义被积函数MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧

注意:在脚本中包括函数需要安装 MATLAB® R2016b 或更高版本。

% Compute the value of the integrand at 2*pi/3.x = 2*pi/3;y = myIntegrand(x)% Compute the area under the curve from 0 to pi.xmin = 0;xmax = pi;f = @myIntegrand;a = integral(f,xmin,xmax)function y = myIntegrand(x)    y = sin(x).^3;endy =    0.6495a =    1.3333

函数文件中的多个函数

在名为 stat2.m 的文件中定义两个函数,其中第一个函数调用第二个函数。

function [m,s] = stat2(x)    n = length(x);    m = avg(x,n);    s = sqrt(sum((x-m).^2/n));endfunction m = avg(x,n)    m = sum(x)/n;end

函数avg是局部函数。局部函数仅可供同一文件中的其他函数使用。

从命令行调用函数stat2。

values = [12.7, 45.4, 98.9, 26.6, 53.1];[ave,stdev] = stat2(values)ave =   47.3400stdev =   29.4124

带参数验证的函数

定义一个函数,该函数将输入限制为不包含 Inf 或 NaN 元素的数值向量。此函数使用 arguments 关键字,该关键字在 MATLAB® 版本 R2019b 及更高版本中为有效关键字。

function [m,s] = stat3(x)    arguments        x (1,:) {mustBeNumeric, mustBeFinite}    end    n = length(x);    m = avg(x,n);    s = sqrt(sum((x-m).^2/n));endfunction m = avg(x,n)    m = sum(x)/n;end

在arguments代码块中,(1,:)表示x必须为向量。验证函数{mustBeNumeric, mustBeFinite}将x中的元素限制为非Inf或NaN的数值。可以参考函数参数验证。

如果调用函数时所带的向量包含NaN元素,则违反了输入参数声明。此违规会导致mustBeFinite验证函数引发错误。

values = [12.7, 45.4, 98.9, NaN, 53.1];[ave,stdev] = stat3(values)Invalid input argument at position 1. Value must be finite.

文章来自互联网,只做分享使用。发布者:张大嘴,转载请注明出处:https://www.baoxiaoke.com/article/278528.html

(0)
上一篇 2025-01-11 01:31
下一篇 2025-01-11 01:31

相关推荐

联系我们

在线咨询: QQ交谈

邮件:442814395@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信