Matlab

您所在的位置:网站首页 声明的函数不在文件内部 Matlab

Matlab

2023-08-06 05:35| 来源: 网络整理| 查看: 265

脚本和函数的区别

函数:定义输入参数和输出参数的对应关系,方便外部调用,有函数 Function...end 声明。

脚本:一堆命令堆在一起,按照顺序执行,完成某一项任务的文件。没有 Function 函数声明。

函数定义:

Function 输出变量=函数名称(输入变量)

语句; 

end;

function用来定义函数,一般一个函数放在一个.m文件里。举个简单的例子建立一个myfunction.m,然后在文件中写。 function y=myfunction(a,b) 其中a,b是输入函数的参数,y是函数返回的值。当需要返回多个值时,可以将y看作一个数组,或者直接将函数的开头写成如function [x,y]=myfunction(x,y)的形式。 然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。 总结一下,将下面的代码 function y=myfunction(a,b) y=a+b; 保存为一个m文件myfunction.m,调用方式如下。 num=myfunction(3,4); 这样就可以由函数中的y=a+b得到num的值是3+4=7。 无返回值函数定义:  function yourfcn(a,b,c)

在脚本中创建局部函数

从 R2016b 开始,MATLAB® 脚本(包括实时脚本)可以包含用于定义函数的代码。这些函数称为局部函数。局部函数在您要重用脚本中的代码时很有用。通过添加局部函数,可以避免创建和管理单独的函数文件。在尝试不同函数时,局部函数也很有用,可根据需要轻松添加、修改和删除它们。

创建包含局部函数的脚本

要创建包含局部函数的脚本或实时脚本,请转至主页选项卡,然后选择新建 > 脚本或新建 > 实时脚本。然后,向脚本中添加代码。在文件末尾的脚本代码后,添加所有局部函数。在局部函数之前包含至少一行脚本代码。每个局部函数必须以其自己的函数定义语句开头,以 end 关键字结尾。函数可以按任意顺序显示。

例如,创建名为 mystats.m 的脚本。

edit mystats

在文件中,包括两个局部函数,mymean 和 mymedian。脚本 mystats 声明一个数组,确定数组的长度,然后使用局部函数 mymean 和 mymedian 计算数组的平均值和中位数。

x = 1:10; n = length(x); avg = mymean(x,n); med = mymedian(x,n); function a = mymean(v,n) % MYMEAN Local function that calculates mean of array. a = sum(v)/n; end function m = mymedian(v,n) % MYMEDIAN Local function that calculates median of array. w = sort(v); if rem(n,2) == 1 m = w((n + 1)/2); else m = (w(n/2) + w(n/2 + 1))/2; end end

当您在实时脚本中添加局部函数时,MATLAB 会自动在第一个局部函数的定义之前添加一个分节符,并删除该函数后面的所有分节符。这是因为实时脚本不支持局部函数中的单个节。

运行具有局部函数的脚本

要运行包含局部函数的脚本或实时脚本,请在编辑器或实时编辑器选项卡中,点击  运行按钮。您还可以在命令行窗口中键入已保存脚本的名称。

要运行单个节,请将光标放在该节内,并使用  运行节按钮(.m 文件需要 R2017b 或更高版本)。在 .mlx 文件中,您只能运行位于局部函数定义之前的节。

局部函数和变量的限制

局部函数仅在定义了这些函数的文件中可见。它们对其他文件中的函数不可见,并且不能从命令行窗口来调用。

当前文件中的局部函数优先于其他文件中的函数。即,当您在脚本内调用某个函数时,MATLAB 会先检查该函数是否为局部函数,然后在其他位置查找该函数。这样您可以在创建特定函数的备用版本的同时,将原始版本保留在另一文件中。

脚本可在基础工作区中创建变量并进行访问。局部函数与所有其他函数类似,具有与基础工作区分开的专属工作区。局部函数无法访问其他函数的工作区或基础工作区中的变量,除非您将这些变量作为参数传递。

访问有关局部函数的帮助

虽然您不能从命令行或其他文件中的函数调用局部函数,但您可以使用 help 命令访问其帮助。同时指定脚本和局部函数的名称,用 > 字符将它们隔开。

例如:

help mystats>mymean mymean Local function that calculates mean of array.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3