MATLAB_M文件与M函数

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_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的文件类型摘要:一、引言二、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 文件。

matlabm文件编译问题解决过程mbuild不是内部或外部命令

matlabm文件编译问题解决过程mbuild不是内部或外部命令

matlabm文件编译问题解决过程mbuild不是内部或外部命令matlab m文件编译问题解决过程'mbuild' 不是内部或外部命令今天遇到一个matlab编译的问题用mcc -m filename.m编译一个函数m文件出现错误:'mbuild' 不是内部或外部命令,也不是可运行的程序或批处理文件。

Error: An error occurred while shelling out to mbuild (error code = 1).Unable to build executable (specify the -v option for more information).Error using ==> mccError executing mcc, return status = 1.然后觉得奇怪,以前都能编译的,现在居然不行。

细看错误提示,估计是环境变量的问题(由于某些原因,环境变量可能被改变或者丢失),于是往系统环境变量path添加:matlabroot\bin;--注,这里matlabroot指的是matlab根目录再编译,还是不行,重启matlab,再编译,OK!这里还有个问题,运行产生的exe文件,弹出提示:没有找到mclmcrrt78.dll,因此这个应用程序未能启动。

重新安装应用程序可能会修复此问题。

要解决这个问题,要再加往环境变量path上加一项:matlabroot\bin\win32;--注,这里matlabroot指的是matlab根目录同样,重启matlab,再编译即可。

另外,matlab2008a编译产生exe文件,却不会产生独立的ctf 文件(好像是被matlab嵌入到exe中去了,所以如果你没找到它,不要惊慌)希望对遇到同样问题或者类似问题的朋友们有点儿帮助。

matlab-M文件

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文件

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文件详解

MatlabM文件详解
3
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语言的子函数)
▪ 函数文件供主程序文件调用,必须指定函数名和
输入输出参数,并由主程序文件中语句序列给出 一系列操作,从而生成所需数据

第3章MATLAB程序设计3.1 M文件3.2 程序控制结构3.3 函数文...

第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.循环的嵌套: 如果一个循环结构的循环体又包括一

Matlab教程之M文件和函数句柄

Matlab教程之M文件和函数句柄

第 6 章 M 文件和函数句柄从总体上说,单独的MATLAB 指令,及由若干指令构成的孤立表达式,只能解算或仿真简单理论数学模型所描述的问题。

复杂些的问题通常需要用一组理论数学算式。

这些问题的解算及仿真就需要借助较复杂的MATLAB 程序进行。

这种MATLAB 程序由较多的MATLAB 指令和多种多样的MATLAB 表达式组成,并循着一定的执行次序运行。

这种程序的扩展名为m 。

这就是脚本M 文件或函数M 文件。

本章系统介绍编写MATLAB 程序时最常用到的四种控制结构、M 函数文件的构造、主函数、子函数以及匿名函数。

最后一节专门叙述函数句柄的创建、观察和调用。

6.1 MATLAB 控制流作为一种计算机编程语言,MATLAB 提供了多种用于程序流控制的描述关键词(Keyword )。

本节只介绍其中最常用的条件控制(if, switch )和循环控制(for, while, continue, break )。

由于MATLAB 的这些指令与其它语言相应指令的用法十分相似,因此本节只结合MATLAB 给定的描述关键词,对这四种指令进行简要的说明。

6.1.1if-else-end 条件控制if-else-end 指令为程序流提供了一种分支控制,它最常见的使用方式见表6.1-1。

【例6.1-1】已知函数xx x e xx y x ≤<≤--<⎪⎩⎪⎨⎧=+-111113,编写能对任意一组输入x 值求相应y 值的程序。

(1)function y=exm060101(x)% y=exm060101(x) Function calculate of example 6.1-1n=length(x); for k=1:n if x(k)<-1y(k)=x(k);elseif x(k)>=1y(k)=exp(1-x(k));elsey(k)=x(k)^3;endend(2)(3)x=[-2,-1.2,-0.4,0.8,1,6]y=exm060101(x)x =-2.0000 -1.2000 -0.4000 0.8000 1.0000 6.0000y =-2.0000 -1.2000 -0.0640 0.5120 1.0000 0.00676.1.2switch-case控制结构【例6.1-2】已知学生的名字和百分制分数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

M文件与M函数
Matlab输入命令的常用方式有两种:一种是直接在Matlab的命令窗门中逐条输入Matlab 命令;二是m文件工作方式。

当命令行很简单时,使用逐条输入方式还是比较方便的。

但当命令行很多时(比如说几十行乃至全成百上千行命令),显然再使用这种方式输入MATLAB 命令,就会显得杂乱无章,不易于把握程序的具体走向,并且给程序的修改和维护带来了很大的麻烦。

这时,建议采用Matlab命令的第二种输入形式m文件工作方式。

m文件工作方式,指的是将要执行的命令全部写在一个文本文件中,这样既能使程序显得简洁明了,又便于对程序的修改与维护。

m文件直接采用Matlab命令编写,就像在Matlab 的命令窗口直接输入命令一样,因此调试起来也十分方便,并且增强了程序的交互性。

m文件与其他文本文件一样,可以在任何文本编辑器中进打编辑、存储、修改和读取。

利用m文件还可以根据白己的需要编写一些函数,这些函数也可以橡Matlab提供的函数一样进行调用。

从某种意义上说,这也是对MATLAB的二次开发。

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||122x x x x y 。

第三步 保存,利用编辑框中的菜单命令File →Save ,或者直接点击其上的图标,探
出对话框
>> fplot('func(x)',[-2,2])
图4 保存M 函数
注意,不要修改文件名,直接点击“保存”按钮。

第四步 函数调用。

在Matlab 的命令窗中输入命令 就会得到图形
图5函数⎪⎩⎪⎨⎧≥-<-=1||11||122x x x x y 的图形。

相关文档
最新文档