当前位置: 首页 > article >正文

Matlab中function函数的使用

目录

语法

说明

示例

包含一个输出的函数

包含多个输出的函数

脚本文件中的函数

函数文件中的多个函数

带参数验证的函数


        function函数是声明函数名称、输入和输出。

语法

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.3400
stdev =29.4124

脚本文件中的函数

        在名为 integrationScript.m 的文件中定义一个脚本,以计算被积函数在 $2\pi/3$ 处的值,并计算曲线下方从 0 到 $\pi$ 的面积。包括一个局部函数,用于定义被积函数 $y = \sin(x)^3$

注意:在脚本中包括函数需要安装 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;
end
y =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.3400
stdev =29.4124

带参数验证的函数

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

function [m,s] = stat3(x)argumentsx (1,:) {mustBeNumeric, mustBeFinite}endn = 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.

http://www.lryc.cn/news/2419656.html

相关文章:

  • 文件操作函数(C语言)!
  • tinyxml在linux和windows下的编译及使用详解
  • PowerManager简介
  • Flutter Ink,InkWell,InkResponse水波纹实现(2.3)
  • fiddler4使用方法以及相关抓包分析
  • 【同花顺函数汇总】
  • Parse error: syntax error, unexpected ''解决办法
  • 软件设计文档如何编写,设计文档内容都包括什么
  • Tribon二次开发-逆向
  • Oracle GoldenGate(OGG)- 超级详细,五步搞定Golang开发环境部署
  • Chromium 历史版本离线安装包 - 下载方法
  • SharpDevelop源码分析笔记(一)
  • readonly和disabled的作用?区别?别翻了,这有精细汇总齐的秘籍!
  • 交互设计的视觉设计:如何创造吸引人的视觉效果
  • sdcard-dma
  • python爬虫最简单入门
  • 条件编译指令的用法总结
  • 手把手教你如何在Linux上安装Deb软件包 (linux 安装 deb)
  • MessageBox.Show 用法介绍
  • GeoGebra
  • 计算机网络中的NET与应用中的.NET
  • TOMCAT的配置(整理)
  • C语言小游戏--贪吃蛇(完整代码)
  • html入门:网页字体的设置
  • 【Bilibili直播源】浏览器抓取真实直播源地址(纯前端JS PHP解析源码)
  • 通过socketpair()函数实现同一进程内部的进程间通信(IPC)
  • 被盗14亿账号信息?腾讯紧急宣布!
  • Linux下 mtrace工具排查内存泄露问题
  • 解决xftp6 要继续使用此程序,您必须应用最新的更新或使用新版本
  • 经典java视频教程,个人无私分享