Jac*_*cob 17
这个页面说,
脚本与功能
脚本是包含MATLAB语句的m文件.MATLAB``function''是另一种类型的m文件.脚本和函数之间的最大区别是函数具有输入和输出参数.脚本文件只能对硬编码到其m文件中的变量进行操作.如您所见,功能更加灵活.因此,它们更适用于将应用于不同数据的通用任务.
脚本对于不更改的任务非常有用.它们也是一种记录特定操作序列的方法,比如具有特殊参数值的函数调用,这可能很难记住.
脚本和函数之间存在更微妙的差异.脚本可以被认为是键盘宏:当您键入脚本的名称时,其中包含的所有命令都会像在命令窗口中键入这些命令一样执行.因此,脚本中创建的所有变量都将添加到当前会话的工作空间中.此外,如果脚本文件中的任何变量与当前工作空间中的变量具有相同的名称,则工作空间中这些变量的值将由脚本中的操作更改.这可以对您有利.它还可能导致不必要的副作用.
相反,函数变量是函数的局部变量.(例外情况是可以声明和使用全局变量,但这需要用户和显式操作.)函数变量的本地范围为您提供更高的安全性和灵活性.除了显式声明的全局变量之外,获取信息进出函数的唯一方法是通过参数列表中的变量.
例
脚本和函数之间的主要区别之一是访问工作空间中的变量.例如,假设在工作空间中,您已经定义了两个变量a = 10和b = 20.这些变量在主提示符的命令行中定义.
脚本文件 - display_mult.m
disp(a*b);
键入display_mult将显示工作区中的a和产品b,即10*20或200.
但是,如果您定义了一个名为display_mult的函数,该函数在具有相同名称的文件中定义:
函数文件 - display_mult.m
function display_mult(a,b)
disp(a*b);
end
Run Code Online (Sandbox Code Playgroud)
您必须将两个变量作为参数包含在函数调用中.因此,display_mult将不工作,这一次,因为a和b在函数的工作空间不存在.您必须通过运行来包含它们,display_mult(a,b)这将显示所需的结果.
简单的解释
脚本中的每个语句都相当于在MATLAB的命令窗口中输入它们.你只是将它们存储在文件中!
另一方面,函数接受参数,并且是与主工作区分开的"新"工作空间.
注:该end在函数调用的到底是可选的,但我想补充它做事情有条理.当然,如果文件中有多个函数定义,那么它们都必须以end.此外,您不能在同一文件中具有脚本和函数定义.