MATLAB如何调用function? 一文看懂functionfunction函数的试用技巧
在 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
脚本文件中的函数处的值,并计算曲线下方从 0 到的面积。包括一个局部函数,用于定义被积函数。
注意:在脚本中包括函数需要安装 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.6495 a = 1.3333
函数文件中的多个函数
在名为 stat2.m 的文件中定义两个函数,其中第一个函数调用第二个函数。
function [m,s] = stat2(x) n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function 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) arguments x (1,:) {mustBeNumeric, mustBeFinite} end n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function 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.
相关文章
matlab提示内存不足怎么办? MATLAB内存不足及MAT文件版本过低解决方案
Matlab作为一款科学计算软件,其内存管理变得尤为重要,当遇到“内存不足”的错误提示时,许多用户可能会感到困扰,下面我们就来看看详细解决办法2025-01-10- 很多小伙伴还不了解matlab怎么生成图像,其实很简单的我们只要准备好的图像复制到matlab的工作目录中,然后入返回指令[data=imread在主界面将图像转换为数据就可以了,详2024-01-20
matlab怎么删除某一行错误代码 matlab把错误行删掉的技巧
用户在使用matlab时多打一行代码或者出现一行错误的代码要怎么删除,其实只要选中要删除的代码直接注释或者delete删除即可,详细请看下文介绍2024-01-20- 很多用户在不需要用到matlab这个软件之后,想把它给卸载掉,但是不知道怎么卸载,不会操作,要想把这个软件卸载干净,可以直接到控制面板中把它卸载,详细请看下文介绍2024-01-20
matlab怎么将数据从大到小排序? matlab正序或倒叙数据排序的技巧
matlab怎么将数据从大到小排序?matlab中的数据想要排序,该怎么从大到小排序,或者从小到大排序呢?下面我们就来看看matlab正序或倒叙数据排序的技巧2023-10-26- matlab积分函数怎么写?matlab中想要求积分,该怎么操作呢?下面我们就来看看matlab求积分的教程2023-10-26
matlab中for循环怎么用? MATLAB里for函数依次读取的用法
matlab中for循环怎么用?matlab中想要使用for循环函数,该怎么操作呢?下面我们就来看看MATLAB里for函数依次读取的用法2023-10-26- Matlab常用快捷键有哪些?我们今天来看看一些常用的Matlab快捷操作命令掌握这些操作可以极大地提高使用Matlab时的效率,详细请看下文介绍2023-10-26
matlab中function函数怎么使用? matlabfunction函数的用法
matlab中function函数怎么使用?matlab中有很多函数,该怎么用呢?下面我们就来看看matlabfunction函数的用法2023-10-26MATLAB R2015b代码怎么自动高亮? MATLAB开启高亮显示当前行技巧
MATLAB R2015b代码怎么自动高亮?MATLAB R2015b编辑代码的时候,想要开启当前行代码高亮显示,该怎么操作呢?下面我们就来看看MATLAB开启高亮显示当前行技巧2023-07-11
最新评论