一、脚本

在MATLAB中,M文件便是脚本文件。脚本文件是一串按照用户意愿排列而成的MATLAB指令集合

运行脚本文件(M文件)之后,,其运算过程中产生的所有变量都自动保存在MATLAB工作区中,这些数据可以由clear函数清除

脚本不能返回输出变量,但是其产生的数据可以供后续的计算使用,且能够提供图形输出

二、函数

若M文件的第一个可执行语句以function开始,则该文件就是函数文件,每一个函数文件都定义着一个函数

MATLAB自带的函数命令也大都由类似的函数文件定义

从使用看,函数是一个‘黑箱’,把数据输入进去,加工计算,再把结果输出。

从形式看,函数文件与脚本文件的不同之处在于:脚本文件的变量为命令空间变量,在文件执行后保存在命令工作空间;函数文件内定义的变量为局部变量,只在函数内部起作用,执行完之后内部变量被清除

函数文件通常由以下几部分组成:

函数定义行:由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数与输出参数,函数定义行必须为文件的第一个可执行语句,函数名必须与文件名一样,函数名可以带多个参数或者不带参数,举例如下


function[x,y,z]=sphere(theta,phi,rho)
functionprintresults(x)

H1行:H1行是帮助文本的第一行,是函数定义下的第一行注释行,在lookfor时使用。一般来说,在编制M文件时,应在H1尽可能多的包含该函数的特征信息,尽量采用英文表述

Python
>> lookfor average
localavfit - Construct "average fit" model
mean - Average or mean value.
HueSaturationValueExample - Compute Maximum Average HSV of Images with MapReduce
emldemo_navg - Compute the average of every N elements of A and put them in B.
affygcrma - Performs GC Robust Multi-array Average (GCRMA) procedure.
affyrma - Performs Robust Multi-array Average (RMA) procedures.
gcrma - performs GC Robust Multi-array Average (GCRMA) background
gcrmabackadj - performs GC Robust Multi-array Average (GCRMA) background
aveknt - Knot averages.
movavg - Leading and lagging moving averages chart.
macd - @FINTS/MACD Moving Average Convergence/Divergence (MACD).
tsmovavg - calculates the (weighted) moving average of a vector of data.
mbswal - Weighted Average Life of mortgage pool.
crossoverintermediate - Weighted average of the parents.
gaplotdistance - Averages several samples of distances between individuals.
mean2 - Average or mean of matrix elements.
averagePooling2dLayer - Average pooling layer
elec_getPowerLossSummary - Calculates average power losses from a
power_wind_dfig_data - data for detailed and average models of DFIG wind turbine example
ewmaplot - Exponentially weighted moving average chart.


帮助文本:在函数定义行后面,连续的注释行不仅可以起到解释与提示作用,更重要的是为用户自己的函数文件建立在线查询信息,以供help命令在线查询时用

函数体:

注释:可放在行尾结束部分,也可另起一行,以%开头

三、M文件的一般结构

函数声明行

H1行

在线帮助文本区

编写和修改记录

函数主体