MATLAB中脚本和函数之间有什么区别?

时间:2009-11-08 04:23:48

标签: file function matlab

MATLAB脚本文件和MATLAB函数文件有什么区别?

1 个答案:

答案 0 :(得分:17)

This page说,

  

脚本与功能

     

脚本是包含MATLAB的m文件   声明。 MATLAB``function''是   另一种类型的m文件。最大的   脚本和。之间的区别   函数是函数有输入   和输出参数。脚本文件   只能操作那些变量   被硬编码到他们的m文件中。如   你可以看到,功能更多   灵活。因此他们更多   适合一般用途的任务   这将适用于不同的   数据。

     

脚本对任务很有用   不改变。他们也是一种方式   记录特定的序列   动作,比如用函数调用   特殊参数值,可能是   很难记住。

     

还有更多   脚本和。之间的细微差别   功能。可以想到一个脚本   作为键盘宏:当你键入   所有的脚本名称   包含在其中的命令被执行   就像你输入了这些一样   命令进入命令窗口。   因此,所有变量都在   脚本被添加到工作区中   本届会议。此外,如果   脚本中的任何变量   文件名与...中的名称相同   您当前的工作空间,值   工作区中的那些变量是   由脚本中的操作更改。   这可以对您有利。它   也可能导致不必要的副作用。

     

相比之下,函数变量是   本地功能。 (例外   这是可以声明和   使用全局变量,但那   要求和明确的行动   user。)本地功能范围   变量为您提供更高的安全性   和灵活性。唯一的方法(除此之外)   显式声明的全局变量)   获取信息进出   功能是通过   参数列表中的变量。

示例

脚本和函数之间的主要区别之一是访问工作空间中的变量。例如,假设在工作区中,您已定义了两个变量a = 10b = 20。这些变量在主提示符的命令行中定义。

脚本文件 - display_mult.m

disp(a*b);

键入display_mult会在工作区中显示ab的产品,即10*20200

但是如果您定义了一个名为display_mult的函数,该函数在具有相同名称的文件中定义:

功能文件 - display_mult.m

function display_mult(a,b)
   disp(a*b);
end

您必须将两个变量作为参数包含在函数调用中。因此,display_mult这次工作,因为函数工作区中不存在ab。您必须通过运行display_mult(a,b)来包含它们,这将显示所需的结果。

简单说明

脚本中的每个语句都等同于在MATLAB的命令窗口中输入它们。你只是将它们存储在文件中!

另一方面,函数接受参数,是一个“新”工作区,与主工作区分开。

注意:函数调用结束时的end是可选的,但我想添加它以使事情井然有序。当然,如果文件中有多个函数定义,则它们都必须以end结尾。此外,您不能在同一文件中包含脚本和函数定义。