很多人拿到别人的m文件,有些函数文件摁F5可以直接运行,有的不行,这是为什么呢?恐怕对matlab的运行机理不大清楚。
关于matlab的函数定义以及代码运行机制,可以参考我的这篇文matlab的函数定义 。
运行的方式可以可以在编辑器中打开选中解析运行,也可以打开后摁F5全文件运行,亦可以在命令行窗口敲入文件名(如果是函数m文件,文件名也是函数名,作为函数文件,也可以调用),拖动文件到命令行窗口其实就是敲文件名一个意思。
- 如果是选中右键运行,就是一行一行地解析运行,没什么好说的。
如果是保存好文件,在命令行敲文件名运行的话,看文件类型。
1.如果是非函数文件,等同于全选右键选择运行。
2.如果是函数文件,不含参直接运行,若含参,而参数没有值又在函数中用到,那么就会报错“输入参数不足”。例外的情况是没有用到参数,或者参数在其使用之前已经赋值,那么可以运行。当然,如果除了文件名,把后面参数也写上,那就等同调用这个函数了。本质上,直接输函数文件名,等同于调用函数却不传入参数。如果是摁F5运行,看运行的对象是函数文件还是一般的文件(看是不是以function定义的)。
1.若文件不是函数文件,则和全选右键运行时一样的,一行一行运行。
2.若文件是函数文件,等同于在命令行窗口输入文件名运行。
说白了,就两种运行方式,一种是调用运行,如F5,敲文件名,敲函数调用,一种是解析运行,即选中语句运行。调用运行如果没敲参数就是无输入参数,会不会出错自可判断。
对于nargin,在没调用函数时,值为6,在调用函数后,就变成了0。