MATLAB M文件与M函数
实验三_M_文件及_MATLAB_程序设计与调试
实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。
二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。
(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。
有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。
MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。
(2)函数文件——它的第一行必须是函数定义行。
M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。
但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。
例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。
matlab的文件类型
matlab的文件类型摘要:一、引言二、MATLAB 文件类型概述1.数据文件2.脚本文件3.函数文件4.工具箱文件5.图形文件三、数据文件1.CSV 文件2.二进制文件3.音频文件4.视频文件四、脚本文件1.M 文件2.M 脚本文件五、函数文件1.函数声明行2.h1 行3.在线帮助文本区4.编写和修改记录5.函数主体六、工具箱文件1.工具箱的定义2.工具箱的结构3.工具箱的使用七、图形文件1.图形对象2.图形属性3.图形坐标4.图形绘制函数八、结论正文:一、引言MATLAB 是一种广泛应用于科学计算、数据分析、可视化等领域的编程语言。
在MATLAB 中,文件类型丰富多样,主要包括数据文件、脚本文件、函数文件、工具箱文件和图形文件等。
本文将对这些文件类型进行详细介绍,以帮助用户更好地理解和使用MATLAB。
二、MATLAB 文件类型概述(1)数据文件数据文件主要包括CSV 文件、二进制文件、音频文件和视频文件等。
这些文件存储了MATLAB 中的数据,可以根据需要进行读取和写入。
(2)脚本文件脚本文件主要包括M 文件和M 脚本文件,它们是MATLAB 中的主要编程方式,可以实现MATLAB 的各种功能。
(3)函数文件函数文件是一种特殊的脚本文件,用于定义和实现MATLAB 函数。
函数文件由函数声明行、h1 行、在线帮助文本区、编写和修改记录、函数主体等几个部分组成。
(4)工具箱文件工具箱文件是一种包含一系列相关函数和程序的文件,可以帮助用户快速完成特定任务。
工具箱文件主要包括工具箱的定义、结构和使用。
(5)图形文件图形文件是MATLAB 中用于绘制图形的对象,包括图形对象、图形属性、图形坐标和图形绘制函数等。
三、数据文件(1)CSV 文件CSV 文件是一种文本文件,用于存储表格数据。
在MATLAB 中,可以使用readtable 和writetable 函数读取和写入CSV 文件。
(2)二进制文件二进制文件是一种存储数据的方式,主要包括.mat 文件和.matlab 文件。
MATLAB程序设计M文件程序控制结构程序调试程序举例
y=input('Please input y=:');
[rho,the]=tran(x,y);
rho
the MATLAB中,函数能够嵌套调用,即一种函数能够调用别旳函数, 甚至调用它本身。一种函数调用它本身称为函数旳递归调用。
例6 分别建立命令文件和函数文件,将华氏温度f转换为 摄氏温度c。
21.1111
x=
21.1111
(5). 函数文件旳其他有关概念
①局部变量和全局变量:
局部变量只存在于单个函数工作空间,全局变量 经过global定义,可穿行于不同函数工作空间, 涉及基本工作空间workspace。
函数文件旳内部变量是局部旳,与其他函数 及MATLAB内存相互隔离; 而假如在若干函数中把某一变量定义为全局 变量,那么这些函数将公用这个变量,全局 变量旳作用域是整个MATLAB旳工作区,即 全程有效,全部函数都能够对其存取和修改。
if (nargin == 1) tol = max(size(x)) * max(s) * eps;
程序部分
end
r = sum(s > tol);
(2)命令m文件建立及其运营
建立 涉及下列环节: 进入m文件编辑器 输入程序 定义文件名,保存程序
命令M文件旳运营方式: 直接在命令窗口输入该文件旳文件名 在m文件编辑器中打开该文件后点击工具条中
② M文件模式
将matlab语句构成旳程序存储成以m为扩展名 旳文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
程序文件不能在命令窗口下建立,因为命令窗口 只允许一次执行一行上旳一种或几种语句。
(完整版)matlab各种函数大全
MATLAB函数表
Ⅰ.1 统计工具箱函数 表Ⅰ-1 概率密度函数
表Ⅰ-2 累加分布函数
表Ⅰ-3 累加分布函数的逆函数
表Ⅰ-4 随机数生成器函数
表Ⅰ-5 分布函数的统计量函数
表Ⅰ-6 参数估计函数
表Ⅰ-7 统计量描述函数
表Ⅰ-8 统计图形函数
表Ⅰ-9 统计过程控制函数
表Ⅰ-10 聚类分析函数
表Ⅰ-11 线性模型函数
表Ⅰ-12 非线性回归函数
表Ⅰ-13 试验设计函数
表Ⅰ-14 主成分分析函数
表Ⅰ-15 多元统计函数
表Ⅰ-16 假设检验函数
表Ⅰ-17 分布检验函数
表Ⅰ-18 非参数函数
表Ⅰ-19 文件输入输出函数表Ⅰ-20 演示函数
Ⅰ.2 优化工具箱函数
表Ⅰ-21 最小化函数表
表Ⅰ-22 方程求解函数表
表Ⅰ-23 最小二乘函数表
表Ⅰ-24
实用函数表
表Ⅰ-25 大型方法的演示函数表
表Ⅰ-26 中型方法的演示函数表
Ⅰ.3 样条工具箱函数
表Ⅰ-27 三次样条函数
表Ⅰ-28 分段多项式样条函数表Ⅰ-29 B样条函数
表Ⅰ-30 有理样条函数
表Ⅰ-31 操作样条函数
表Ⅰ-32 样条曲线端点和节点处理函数
表Ⅰ-33 样条曲线端点和节点处理函数
表Ⅰ-34 解线性方程组的函数
表Ⅰ-35 样条GUI函数
Ⅰ.4 偏微分方程数值解工具箱函数表
Ⅰ-36 偏微分方程求解算法函数
表Ⅰ-37 用户界面算法函数
表Ⅰ-38 几何算法函数
表Ⅰ-39 绘图函数表Ⅰ-40 实用函数
续表
表Ⅰ-41 自定义算法函数表Ⅰ-42 演示函数。
matlab-M文件
MATLAB
② M文件程序执行方式
将matlab语句构成的程序存储成以m为扩展名的文件,
然后再执行该程序文件,这种工作模式称为程序文件模 式。
程序文件不能在命令窗口下建立,因为命令窗口只允许
一次执行一行上的一个或几个语句。
特点:1)和Basic一样是解释性的语言,语法简单、易调试;
2)和其他语言相比初始运行速度慢,但M文件一经运行便 以代码存放在内存中,再次运行时,将直接从内存中取出运行, 大大提高速度; 3)M文件扩展了MATLAB的能力,包含一系列工具箱,如: 自动控制、信号处理、小波分析等。
MATLAB
2.M文件的创建和打开
m文件的类型是普通的文本文件,可以使用 系统认可的文本文件编辑器来创建m文件。 如:windows的记事本和word等。 用matlab自带的编辑器来创建m文件。(建 议使用)。 单击桌面图标 ,在命令窗输入指令edit,都 可以打开空白的M文件编辑器。
MATLAB
+ +
MATLAB
M函数参数的调用
1)函数调用 完整函数调用的命令格式:
[输出参数1,输出参数2,…]=函数名(输入参数1,输入参数2) 当函数的输出形参多于1个时,应用方括号,参数之间用逗 号隔开:function [a,b]=mfile(x,y);当函数无输出参数时, 输出参数项应为空,或者用空的中括号表示: function mfile(x,y) 或者function [ ]=mfile(x,y);
matlabm文件程序执行方式将matlab语句构成的程序存储成以m为扩展名的文件然后再执行该程序文件这种工作模式称为程序文件模程序文件不能在命令窗口下建立因为命令窗口只允许一次执行一行上的一个或几个语句
MATLAB的M文件
MATLAB的M⽂件M⽂件可分为脚本M⽂件(简称脚本⽂件)和函数M⽂件(简称函数⽂件)两⼤类,其特点和适⽤领域均不同。
脚本⽂件脚本⽂件是由MATLAB语句构成的⽂本⽂件,以.m为扩展名。
运⾏命令⽂件的效果等价于从MATLAB命令窗⼝中按顺序逐条输⼊并运⾏⽂件中的指令,类似于DOS下的批处理⽂件。
脚本⽂件运⾏过程所产⽣的变量保留在MATLAB的⼯作空间中,脚本⽂件也可以访问MATLAB当前⼯作空间的变量,其他脚本⽂件和函数可以共享这些变量。
因此,脚本⽂件常⽤于主程序的设计。
例题编写脚本⽂件,对数a、b、c进⾏排序,并按从⼤到⼩的顺序输出。
% compareABC.ma = input("Enter a:");b = input("Enter b:");c = input("Enter c:");sort([a,b,c],'descend')1. 选择好⼯作⽬录2. 新建⼀个脚本⽂件命名为compareABC.m3. 在脚本⽂件中编写代码4. 点击运⾏按钮5. 在命令⾏窗⼝作输⼊输出6. 查看⼯作区的变量情况函数⽂件**函数⽂件是M⽂件的另⼀种类型,它也是由MATLAB语句构成的⽂本⽂件,并以.m为扩展名。
MATLAB的函数⽂件必须以关键字function语句引导,其基本结构如下:function [返回参数1,返回参数2,....] = 函数名(输⼊参数1,输⼊参数2,...)% 注释说明语句段,由%引导输⼊、返回变量格式的检测语句函数体语句函数⽂件具有如下特点。
(1)函数名由读者⾃定义,与变量的命名规则相同。
(2)保存的⽂件名必须与定义的函数名⼀致。
(3)读者可通过返回参数及输⼊参数来实现函数参数的传递,但返回参数和输⼊参数并不是必须的。
返回参数如果多于1个,则应该⽤中括号“[]”将它们括起来;输⼊参数列表必须⽤⼩括号“()”括起来,即使只有⼀个输⼊参数。
MatlabM文件详解
M文件调试
▪ M文件的调试
▪ 可以在文件编辑器中进行
▪ M语言的文件编辑器不仅仅是一个文件编辑器,还是
一个可视化的调试开发环境
▪ 可以在命令行中结合具体的命令进行
M文件调试
▪ 应用程序的错误
▪ 语法错误
▪ 包括词法或者文法的错误
▪ 运行时的错误
▪ 指程序运行过程中得到的结果不是用户需要的结果
▪ 程序的调试是在程序无法得到正确结果时进行程
MATLAB的工作模式
(1)指令驱动模式
▪ 即在MATLABM命令行窗口下用户输入单行指令时, MATLAB立即处理这条指令,并显示结果,这就 是MATLAB命令行方式。
▪ 缺点:命令行方式程序可读性差,而且不能存 储,当处理复杂问题和大量数据时很不方便。
(2)M文件模式
▪ 将MATLAB语句构成的程序存储成以m为扩展名的 文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
序修正的唯一手段 ▪ M文件是一种解释型语言,只有在运行过程中才能发现
应用程序的错误
M文件调试
▪ M语言文件编辑器提供Breakpoints菜单进行程序调试
M文件调试
▪ Breakpoints菜单中的命令用来设置各种断点,只有
设置了断点的应用程序才能进行调试 ▪ 提供的自动断点
▪ Stop if Error ▪ Stop if Warning ▪ Stop if NaN or Inf ▪ Stop if All Errors
程序执行的结果将显示于命令窗中
函数文件(相当于C语言的子函数)
▪ 函数文件供主程序文件调用,必须指定函数名和
输入输出参数,并由主程序文件中语句序列给出 一系列操作,从而生成所需数据
第二讲 M文件及函数的编写
case{2,4,6}
disp(‘even numbers’)
otherwise
disp (‘ mistake!’)
end2021/5/27
14
M文件及函数的编写
分支语句和C语言的区别:
当开关表达式的值等于某表达式,执行该语句 后结束该结构,不用 break otherwise 语句,不是 default 程序的执行结果和各个case顺序无关
3. 交互式输入Байду номын сангаас
(1) 用户输入提示命令input
M文件及函数的编写
input 命令用来接收用户从键盘输入数据、 字符串或表达式,并接收输入值。其常用格 式: >> R=input (‘How many apples’)
运行此命今后,将给出文字提示,并等待键盘 输入。
>> R=input(‘what is your name ?’,’s’)
新建M文件 一般过程 编写指令
调试运行
M文件及函数的编写
用户在编制此类文件时,只需把所要执行的命令 按行编辑到指定的文件中,程序运行时, MATLAB按行执行这些指令。
2021/5/27
4
几点规则:
M文件及函数的编写
● 建立好的书写风格,保持程序的可读性。
● m为文件的扩展名,在低版本的MATLAB中 还要注意文件名不超过8位,文件名和变量的命 名规则相同。
2.在command window中调用:num=my_fact(11)
M20A21T/5/2L7 AB函数为:prod(1:1000)
24
使用tic和toc函数, 测试一下该函数的运行效率。 显式程序运行的时间。
tic; num=my_fact(500); toc
第3章MATLAB程序设计3.1 M文件3.2 程序控制结构3.3 函数文...
例3-3 求一元二次方程ax2 +bx+c=0 的根。
程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
2.数据的输出
MATLAB提供的命令窗口输出函 数主要有disp函数,其调用格式为 disp(输出项) 其中输出项既可以为字符串,也可 以为矩阵。
例3-2 输入x,y的值,并将它们的 值互换后输出。
程序如下: x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y);
程序如下: A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因
3.2.3 循环结构
1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式 2的值为步长,表达式3的值为循环变量的 终值。步长为1时,表达式2之间第一个能 被21整除的整数。
程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
4.循环的嵌套: 如果一个循环结构的循环体又包括一
第4讲 M脚本文件和M函数
keyboard的功能
一般使用在m-files里面,作用就是,当你运行mfiles的程序时,它会在keyboard的位置停下,并 且在命令窗口出现 K>> ,这时你可以在命令窗 口中输入命令,可以测试软件已经运行的程序 (keyboard以上的程序),或者可以改变已运行 程序所得到的变量,你可以在workspace里面观 察变量的变化。当你调试好了以后,在K>>后面 输入return,就会继续运行keyboard后面的程序。 其实keyboard就是调试程序时候用的,比较常用 的还有pause,但pause不可以改变已运行程序 得出变量 。
函数调用示意图
C:\ test soft APP 文件 文件 JAVA
Afun.m Bfun.m Cfun.m test1.m test2.m
当前路径 添加搜索路径
matlab
D:\
private
课件 00P 图片
例子 Dfun.m Efun.m Ffun.m eg1.m eg2.m
myfun1.m myfun2.m myfun3.m myfun4.m
M函数
使用M函数格式编程时MATLABC程序设计的主流。 MATLAB的M函数是由function语句引导的,其基 本格式如下: function [返回变量列表]=函数名(输入变量列表)
%H1行即引导行,用%注释,执行lookfor命令时会搜索这句话 %输入、返回格式变量的检测(也就是此函数的调用格式) %执行help+函数名时会显示这些内容
浮点型数据
最大浮点数realmax和最小浮点数realmin
例:
>> realmax >> realmin
matlab中m函数
matlab中m函数MATLAB是一种用于数值计算和数据可视化的高级编程语言和环境。
它具有强大的矩阵处理能力,被广泛应用于科学、工程、经济学、金融学等领域。
在MATLAB中,M文件是一种包含MATLAB语句的脚本文件,也被称为M函数。
M函数是MATLAB中最常用的方式之一,用于封装一段可重复调用的代码。
一个M函数由一系列MATLAB语句组成,并且可以具有输入参数和输出结果。
创建M函数的主要目的是提高代码的可重用性和可维护性。
创建M函数非常简单,只需使用MATLAB编辑器创建一个新的.m文件,并在其中编写代码即可。
M函数的文件名必须与函数名称相同。
例如,如果函数的名称是"myFunction",则M文件的文件名应为"myFunction.m"。
M函数的定义通常包含在文件的开头部分。
例如,下面是一个简单的M函数的例子:```function output = myFunction(input) % 这是一个简单的M函数例子output = input + 1;end```在这个例子中,我们定义了一个名为"myFunction"的M函数,它有一个输入参数"input"和一个输出结果"output"。
在函数体内部,我们对输入参数进行加一操作,并将结果赋给输出参数。
调用M函数非常简单。
只需在MATLAB命令窗口中输入函数名和相应的参数即可。
例如,我们可以这样调用上面定义的M函数:```result = myFunction(2);disp(result);```这段代码将输出结果"3",因为我们将输入参数"2"加一后得到了输出结果"3"。
除了输入参数和输出结果,M函数还可以具有局部变量。
局部变量只在函数体内部有效,并且在函数外部是不可见的。
这种封装性使得M函数更加模块化和可维护。
matlab中m文件的作用
matlab中m文件的作用
在MATLAB中,M文件是一种文本文件,用于存储MATLAB程序代码。
M文件可以包含函数、脚本或其他MATLAB代码。
它们被用来定义函数、执行一系列的命令或者实现特定的算法。
M文件的作用非常广泛,下面我会从几个不同的角度来详细介绍。
首先,M文件可以用来定义函数。
在MATLAB中,函数是一段独立的代码,可以接受输入参数并返回输出结果。
M文件中定义的函数可以被其他M文件或者MATLAB命令调用,这样可以实现代码的复用和模块化。
通过定义函数,我们可以将复杂的计算或者算法封装起来,提高代码的可读性和可维护性。
其次,M文件可以用来编写脚本。
脚本是一系列按顺序执行的MATLAB命令的集合。
通过编写脚本,可以实现自动化的数据处理、图形绘制、模拟等功能。
脚本可以帮助用户简化重复性工作,提高工作效率。
此外,M文件还可以用来实现特定的算法或者数值计算。
MATLAB作为一种强大的数学计算软件,提供了丰富的数学函数和工具,用户可以通过编写M文件来实现各种复杂的数学计算和算法。
比如,求解方程、拟合曲线、求解微分方程等。
总的来说,M文件在MATLAB中具有非常重要的作用,它们是实现功能的基本单元,可以用来定义函数、编写脚本、实现算法等。
通过合理的使用M文件,可以充分发挥MATLAB的强大功能,实现各种复杂的数学计算和工程应用。
matlab-m文件与m函数
第1章 MATLAB 语言系统
1.3.2 独立m文件 独立m文件是不需要输入输出参数 的带有扩展名.m的m文件,可以分为两种: 一种是注释文件,另一种是执行文件。
第1章 MATLAB 语言系统
注释文件只有注释行,没有命令执行行。
注释文件可以响应help命令。
注释行的各书写行之前需要冠以“%”符号来标识,
作为命令在MATLAB平台上执行。
第1章 MATLAB 语言系统
不同的是,需要相应的参数方可以 正确地执行,如本函数,需要输入参数x, 并且返回3个参数y,y1,y2。
第1章 MATLAB 语言系统
在MATLAB平台上执行m函数exam03.m
如下:(在matlab中演示)
x=0:2*pi/180:2*pi;
y=exam03(x);
plot(x,y)
第1章 MATLAB 语言系统
输入命令显示结果如图1-22所示。
图1-22
输入命令显示
第1章 MATLAB 语言系统
输出图线显示结果如图1-23所示。
图1-23
演示曲线
第1章 MATLAB 语言系统 可以看到,exam03.m是依赖于变量x来执
行的,并且返回变量y到MATLAB平台上或者变
量内存,与独立m文件的执行是不同的。 注: function[y,y1,y2]=exam03(x) 如文件名为:ff.m 则调用ff(x),所以一般把 文件名与函数名起一样的。
总结
• 1.M文件如何建立?如何执行? (1)EDIT (2)“文件”—“新建” (3)文件名<回车> • 2.看M文件用什么语句?--- type <文件名> • 3. M文件的注释,用什么语句? help <文件名> • 4. M函数,调用文件名(自变量) function[y,y1,y2]=exam03(x) 如文件名为:ff.m 则调用ff(x)
matlab资料总结 华北电力大学
第一章:一、M文件:以字母m为其扩展名,是ASCII码文本文件。
分为两类:程序M文件,简称M文件;函数M文件,或简称为函数(包括内部函数)。
M文件的内容是由符合MA TLAB语法的语句构成的。
函数M文件的第一行必须是以关键字function开始的函数说明语句。
文件名一般为函数名。
程序M文件是众多命令语句的集中体现,不一定有特定的功能。
二、两类M文件的异同共性:在MA TLAB命令窗口中键入文件名,可以执行M文件中的规定的计算任务或某种功能。
区别一:程序M文件中创建的变量都是MATLAB工作空间中的变量,工作空间的其他程序或函数可以共享;而函数M文件中创建的所有变量除了全程变量外,均为局限于函数运行空间内的局部变量;——类似于主程序区别二:函数M文件可以使用传递参数,所以函数M文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。
——类似于函数三、帮助命令MATLAB帮助命令包括help、lookfor以及模糊查询。
1.help命令在MATLAB 6.5命令窗口中直接输入help 命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。
同样,可以通过help加函数名来显示该函数的帮助说明。
2.lookfor命令help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
lookfor命令只对M文件的第一行进行关键字搜索。
若在lookfor命令加上-all选项,则可对M文件进行全文搜索。
3.模糊查询MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。
四、获得帮助:方便的在线帮助命令,可提供各个命令的用法指南。
help命令还可提供有关MATLAB的一些重要信息。
1、help 显示所有的帮助目录。
2、help 目录名显示出指定目录中的所有命令及其函数:如输入:help lang将列出与MA TLAB编程语言有关的所有命令及其函数。
Matlab如何调用其他m文件中的函数
我们若可以根据需要建立自己的函数文件,他们能够像库函数一样方便地调用,从而极大地扩展MATLAB地能力.
如果对于一类特殊地问题,建立起来许多函数M文件,就能最终形成独立地工具箱.
1.函数M文件地基本用法
function 因变量=函数名 (自变量)
其它各行为从自变量计算因变量地语句,并最终将结果赋予因变量.
这个M文件地文件名最好是函数名.m
function a = randint (m, n)
% RANDINT Randomly generated integral matrix
a = floor (10*rand(m,n))
当需要一个这样地2*3随机矩阵时,只需
>>x=randint(2,3)
x= 9 6 8
2 4 7
2.函数M文件有多个因变量
要用[]将他们括起来,请看下例:
function [mean, stdev] = stat(x)
% STAT Mean and standard deviation
[m n] = size(x);
if m =1
m=n
end
mean= sum(x)/m;
stdev=sqrt(sum(x^2)/m-mean^2)
其用途,如求一个数组X地平均值和均方差,只需:
>>x= [ 2 4 -7 0 5 -1];
[xm.xd]=stat(x)
xm=0. 5
xd=3.9476。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M文件与M函数
Matlab输入命令的常用方式有两种:一种是直接在Matlab的命令窗门中逐条输入Matlab 命令;二是m文件工作方式。
当命令行很简单时,使用逐条输入方式还是比较方便的。
但当命令行很多时(比如说几十行乃至全成百上千行命令),显然再使用这种方式输入MATLAB 命令,就会显得杂乱无章,不易于把握程序的具体走向,并且给程序的修改和维护带来了很大的麻烦。
这时,建议采用Matlab命令的第二种输入形式m文件工作方式。
m文件工作方式,指的是将要执行的命令全部写在一个文本文件中,这样既能使程序显得简洁明了,又便于对程序的修改与维护。
m文件直接采用Matlab命令编写,就像在Matlab 的命令窗口直接输入命令一样,因此调试起来也十分方便,并且增强了程序的交互性。
m文件与其他文本文件一样,可以在任何文本编辑器中进打编辑、存储、修改和读取。
利用m文件还可以根据白己的需要编写一些函数,这些函数也可以橡Matlab提供的函数一样进行调用。
从某种意义上说,这也是对MA TLAB的二次开发。
m文件有两种形式:一种是命令方式或称脚本方式;另一种就是函数文件形式。
两种形式的文件扩展名均是.m。
1、M文件
当遇到输入命令较多以及要重复输入命令的情况时,利用命令文件就显得很方便了。
将所有要执行的命令按顺序放到一个扩展名为.m的文本文件中,每次运行时只需在MATLAB 的命令窗口输入m文件的文件名就可以了。
需要注意的是,m文件最好直接放在Matlab的默认搜索路径下(一般是Matlab安装目录的子目录work中),这样就不用设置m文件的路径了,否则应当用路径操作指令path重新设置路径。
另外,m文件名不应该与Matlab的内置函数名以及工具箱中的函数重名,以免发生执行错误命令的现象。
Matlab对命令文件的执行等价于从命令窗口中顺序执行文件中的所有指令。
命令文件可以访问Matlab工作空间里的任何变量及数据。
命令文件运行过程中产生的所有变量都等价于从Matlab工作空间中创建这些变量。
因此,任何其他命令文件和函数都可以自由地访问这些变量。
这些变量一旦产生就一直保存在内存中,只有对它们重新赋值,它们的原有值才会变化。
关机后,这里变量也就全部消失了。
另外,在命令窗口中运行clear命令,也可以把这些变量从工作空间中删去。
当然,在Matlab的工作空间窗口中也可以用鼠标选择想要删除的变量,从而将这些变量从工作空间中删除。
接下来,编写一个名为test.m的命令文件,用来计算矩阵1到100的和,并把它放到变量s中。
第一步创建新的M-文件。
在Matlab主菜单上选择菜单命令File→New→M-File
图1 创建新的M-文件
第二步编写代码。
在接下来出现的编辑框中输入相应的代码,见图2
图2 代码编辑框
第三步保存。
利用编辑框中的菜单命令File Save,或者直接点击其上的图标,就弹出一个保存文件的对话框:
图3 保存文件
将文件名中的Untitled.m 改成test ,点击“保存”按钮。
第四步 M 文件的使用。
回到Matlab 的主界面,在命令窗口输入如下两条命令
>>test
>>s
观察结果。
2、M 函数
m 函数文件是一个特殊的m 文件,其常见格式如下:
funcdon 返问变量列表=函数名(输入变量列表)
注释说明语句段
函数体语刘
需要说明的是,这里输入变量的个数以及输出变量的个数是由MA TLAB 本身提供的两个保留变量nargin 和nargout 来给出的,它们分别是Number of function input arguments 和Number of function output arguments 的缩写形式。
输入变量要用逗号隔开,输出变量多于1个时,要用方括号括起来。
用户可以借助于help 命令显示其中的注释说明语句段。
通过这样的方法就可以建立函数文件或者称m 函数,其调用方法与一放的Matlab 函数的调用方法相同。
函数文件相当于对Matlab 进行了二次开发。
其作用与其他高级语言子函数的作用基 本相同,都是为了实现特定目的而由用户自己编写的子函数。
函数文件与命令文件有着鲜明的区别:
●函数文件的第一行必须包含function 字符;命令文件无此要求。
●函数文件的第一行必须指定函数名、输入参数及输出参数,命令文件无此要求。
●一个函数文件可以合0个、1个或多个输入参数和返回值。
●函数文件要在文件的开头定义函数名,如function [y1,y2]=func(x,a,b,c),则该函数文件名必须存为func.m ,而命令文件无此要求。
●命令文件的变量在文件执行结束以后仍然保存在内存中而不会丢失,而函数文件的 变量仅在函数运行期间有效(除非用global 把变量说明成全局变量,否则函数文件中的变量均为局部变量),当函数运行完毕后,这些变量也就消失了。
需要说明的是,调用函数时所用的输入输出变量名并不要求与编写函数文件时所用的输入输出变量名相同。
下面讲述函数文件的创建以及函数的调用。
第一步 和M 文件的一样,通过菜单命令File →New →M-File ,弹出一个编辑框。
第二步 在编辑框中输入如下代码
function y=func(x)
if abs(x)<1
y=sqrt(1-x^2);
else
y=x^2-1;
end 此段代码对应于分段函数⎪⎩⎪⎨⎧≥-<-=1||11||122
x x x x y 。
第三步 保存,利用编辑框中的菜单命令File Save ,或者直接点击其上的图标,探出对话框
图4 保存M 函数
注意,不要修改文件名,直接点击“保存”按钮。
第四步 函数调用。
在Matlab 的命令窗中输入命令
>> fplot('func(x)',[-2,2])
就会得到图形
图5函数⎪⎩⎪⎨⎧≥-<-=1||11||122
x x x x y 的图形。