matlab教程m文件介绍

合集下载

matlab教程:第8章 M文件设计基础

matlab教程:第8章 M文件设计基础

2014-8-6
例8-13 若一个数等于它的各个真因子之和, 则称该数为完数,如6=1+2+3,所以6是完数。求 [1,500]之间的全部完数。
for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end end
2014-8-6
例8-10 写出下列程序的执行结果。 s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; end disp(s');
2014-8-6
第8章 MATLAB程序设计
§8.2 程序控制结构 8.2.3 循环结构
2 while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环 体语句,执行后再判断条件是否成立,如 果不成立则跳出循环。
2014-8-6
price=input('请输入商品价格'); switch fix(price/100) case {0,1} %价格小于200 rate=0; case {2,3,4} %价格大于等于200但小于500 rate=3/100; case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100; otherwise %价格大于等于5000 rate=14/100; end price=price*(1-rate) %输出商品实际销售价格

第二讲MATLAB的程序设计和M文件

第二讲MATLAB的程序设计和M文件

第二讲MATLAB的程序设计和M文件在MATLAB中,程序设计主要是通过编写和运行M文件来实现。

M文件是MATLAB的主要代码文件,用于实现不同功能的程序,可以包含变量定义、算法实现、函数调用和图形绘制等。

下面将介绍MATLAB的程序设计和M文件的基本知识。

MATLAB的程序设计主要包括如下几个方面:1.变量和数据类型:在M文件中,可以使用不同的变量类型存储数据,如整型、浮点型、字符型等。

不同的变量类型在MATLAB中有不同的表示方法和功能。

2.运算和表达式:在M文件中,可以使用常见的数学运算符(如加减乘除、指数等)进行计算。

同时,也可以使用逻辑运算符(如与、或、非等)进行逻辑运算。

3. 条件语句:在M文件中,可以使用条件语句实现根据不同的条件执行不同的操作。

MATLAB中的条件语句主要有if语句和switch语句,通过判断条件的真假来决定执行路径。

4. 循环语句:在M文件中,可以使用循环语句实现对一段代码的重复执行。

MATLAB中的循环语句主要有for循环、while循环和do-while循环。

5.函数的定义和调用:在M文件中,可以通过定义函数来实现特定功能的封装。

函数可以包含输入参数和输出参数,通过参数的传递来实现数据的交互和函数的调用。

1.M文件的命名和保存:M文件的命名应该具有描述性,以体现文件中代码的功能。

M文件的保存格式是以.m为文件扩展名。

2.M文件的结构:在M文件中,一般会包含变量定义、函数定义和主程序等部分。

变量定义部分用于声明和初始化变量,函数定义部分用于定义自定义函数,而主程序部分用于调用函数和执行主要功能。

3.代码注释:为了提高代码的可读性和可维护性,需要在M文件中添加注释。

注释可以用于解释代码的目的和思路,以及描述变量、函数和算法等的作用和实现方法。

4.代码风格:为了代码的一致性和可读性,需要遵循一定的代码风格规范。

例如,可以在操作符周围留有空格,使用一致的缩进和命名规则,避免使用不必要的缩写等。

实验指导M文件

实验指导M文件

M文件一、关于M文件1. MA TLAB语言的程序文件为文本文件,后缀为.m,通常称为M文件。

2. MA TLAB提供了专门的M文件编辑器,在菜单或工具栏中可以打开,也可以在控制窗口输入edit命令打开。

3. M文件分为命令M文件和函数M文件。

二、命令M文件1. 命令M文件是命令序列。

2. 命令M文件无输入及返回参数。

3. 数据保存在基本工作空间中。

三、函数M文件1. 函数M文件可以接受和返回参数。

2. 函数M文件运行时会创建函数工作空间,运算变量存放在这个空间。

3. 例计算一个向量所有元素的平均值function y=average(x)% 计算一个向量所有元素的平均值% function 表示创建函数M文件,y是返回参数,x是输入参数,average是文件名。% 第二行是H1行,对函数M文件的格式和功能做说明,在使用help命令时显示的就是这些内容。[m,n]=size(x);% size是MATLAB函数,返回矩阵的行数和列数。if(~((m==1)|(n==1))|(m==1&n==1)error(‘please input a vector’);end% 这是一个选择结构,单分支选择结构的格式是:% if 条件% 语句组% end% 条件成立时执行语句组,条件不成立时执行后续语句组。%% 上面选择结构要求输入的x是向量,即m和n一个是1 ,另一个不是1。% 如果不是,提示错误,并要求输入一个向量。%% 关系运算符:% == 等于~=不等于> < >= <=% 同学们可以在命令窗口输入% a=[1 2;1 2],b=[1 1;2 1]% c=a==b% 看看结果。%% 逻辑运算符:% & 逻辑与| 逻辑或~ 逻辑非y=sum(x)/length(x);%计算平均值%sum(x)是MATLAB函数,%如果x 是矩阵,返回矩阵按列求和得到的行向量%如果x 是向量,返回各元素的和%% 同学们可以在命令窗口输入% a=[1 2 3;1 0 5],b=[1 1 2 1]% sum(a) ,sum(a’),sum(b),sum(b’)%% 函数编辑完成后,保存为与函数同名的M文件。%% 同学们可以在命令窗口输入% a=[1 2 3;1 0 5],b=[1 1 2 1]% average(a),average(b)。

M文件及函数的编写

M文件及函数的编写
函数声明
在调用函数之前,需要先声明函数,告诉编译器函数的名称、输入参数和返回值类型。
函数参数与返回值
参数
用于传递数据给函数,函数内部通过参数接收数据并进行处理。
返回值
函数执行完毕后,将结果返回给调用者。
函数体与局部变量
函数体
包含函数的逻辑和计算过程,是实现函数功能的 代码块。
局部变量
在函数内部定义的变量,只在函数内部有效,生 命周期与函数执行过程一致。
以查看每一步的结果。
02 条件断点
根据特定条件自动停止程
序。
04 错误消息和警告
仔细阅读和利用MATLAB
提供的错误消息和警告信
息。
M文件性能优化
向量化操作
利用MATLAB的向量化操作,避免 使用循环结构,提高代码执行效率。
避免不必要的函数调用
减少不必要的函数调用,以提高代码 执行速度。
预分配内存
用于多分支条件判断。
while循环
用于当条件满足时重复执行一段代码。
函数与脚本
01
函数
用于封装一段可重用的代码,并接受输入参数和 返回输出结果。
02
脚本
用于执行一系列MATLAB命令,不接受输入参数 和返回输出结果。
03
函数编写
பைடு நூலகம்
函数定义与声明
函数定义
指明函数名称、输入参数和返回值类型,以及函数体。
算法实现与验证
算法选择
根据问题需求选择合适的算法,并使用M文件实现该算法。
参数调整
根据实际需要调整算法参数,以提高算法性能和准确性。
算法验证
通过实验验证算法的有效性和优越性,并利用M文件记录实验结 果和分析。

matlab教程m文件介绍

matlab教程m文件介绍
• 用户如想灵活应用matlab去解决实际问题, 充分调用matlab的科学技术资源,就需要编 辑m文件 • 包含matlab语言代码的文件称为m文件,其 扩展名为m。 • 编辑m文件可使用各种文本编辑器。
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即在 matlab 窗口下当用户输入单行指令时,matlab 立即处理这条指令,并显示结果,这就是 matlab命令行方式。 命令行操作时,matlab窗口只允许一次执行 一行上的一个或几个语句。
命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将matlab语句构成的程序存储成以m为扩展名 的文件,然后再执行该程序文件,这种工作 模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。
二、m文件的创建
?echo指令用来控制m文件在执行过程中是否显示echoon打开所有命令文件的显示方式echooff关闭所有命令文件的显示方式echo在以上两者间切换?input提示用户从键盘输入数值字符串表达式
matlab的程序设计
—— matlab语言编程, 程序简洁、可读性很强 而且调试十分容易。
m文件简介
(3). 分支结构——根据一定条件来执行的各条语 句。 if — else — end语句有3种形式 1 if 表达式 执行语句 end 2 if 表达式 ——— 是 语句1 else ———— 否 语句2 end
3 if
表达式1 ——— 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 · · · else 语句n end
(3). 函数m文件— 需要输入变量,返回输出变量

第八章 M文件程序设计基础

第八章 M文件程序设计基础

3、图像、音频文件的读入 图像文件的读取、显示、保存命令: imread imshow imwrite 音频文件的读取命令 wavread 4、其它文件的读入:动画文件、xls文件,数据库数据
作业:编写一个M文件实现下述功能: 在命令窗口输入一个矢量A,调用M文件,能输出该矢量的 最大值Amax、最小值Amin和平均值Amean。
二、数据文件 ★以.mat为扩展名的二进制数据文件 ★以.txt 、.dat为扩展名的ASCII码数据文件 ★以.bmp、.jpg为扩展名的图象数据文件 ★以.wav为扩展名的声音数据文件
三、数据输入向导(Import Wizard) 用于将各种类型的数据文件中的数据导入工作空间,可以是 .mat、 .txt 、 .bmp、 .wav等。 操作步骤: ★ File——Import Data……,选择该项后弹出Import对话框, 在对话框中输入需要导入的数据文件名(* .mat、* .txt 、 *.bmp、* .wav),打开文件可以显示数据输入向导窗口。 ★数据输入向导窗口有两个选项:
第八章 M文件程序设计基础
§8.1 M文件
一、M文件的引入
MATLAB的工作方式有两种: 1、交互式的指令行操作方式 非常适合于对简单问题的数学演算、结果分析及测试, 当要解决的问题变得复杂后,一次需要执行多条MATLAB 语句,此时要用第二种工作方式;
2、 M文件的编辑工作方式 通过在命令窗口调用M文件,从而实现一次执行多条 MATLAB语句的方式。 所谓的M文件是由MATLAB语句(命令或函数)构成的 ASCII码文本文件,文件名必须以 “.m”为扩展名。

File : 从文件调入数据 :从剪切板中调入数据 Clipboard
四、数据的输入与输出 1、save的使用:将工作空间中的变量进行保存。 ◆save : 工作空间所有变量二进制形式 matlab .mat

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

MATLAB的M文件学习和使用_纯手打-真实经验之谈

MATLAB的M文件学习和使用_纯手打-真实经验之谈

MATLAB的M文件的学习和使用
一、概念
M文件是MATLAB的程序文件,分为两类:脚本文件和函数文件。

✓脚本文件可以用于执行一些简单的MATLAB命令,运行时直接输入文件名就可以。

✓函数文件使用时不能直接输入函数名,必须由其他语句调用。

二、基本操作:
✓创建M文件:点击工具栏上的图标,或在命令窗口输入edit。

✓打开M文件:点击工具栏上的图标。

✓保存M文件:写好内容后,点击保存按钮,函数文件保存时文件名要和函数名一致。

存储路径一定要是英文。

三、函数M文件格式
函数M文件不能独立执行,有输入参数和输出参数,输出形参多于一个时,用方括号括起来。

格式为:
●function [参数1,参数2,…]=函数名(参数1,参数2,…)
●注释
●函数体
四、示例
1、创建文件,写入函数,并保存。

两个数加、乘运算,定义为ff函数:
2、“当前路径”和文件保存路径一致时才能调用,如果不一致就会报错。

我的文件放在桌面上了,当前路径就是桌面:
3、调用时先给出函数参数的值,如图:
因为是输入输出都是形参,所以变量名可以自己定义:
4、把调用命令写到另一个M文件中,这个是M文件是脚本文件,保存为main1.m,
和在命令窗口调用效果是一样的:
5、运行main1文件,在命令窗口直接输入文件名即可:
或者点击main1文件的运行按钮,命令窗口出现结果:。

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】已知学生的名字和百分制分数。

matlab M文件的建立与调试

matlab  M文件的建立与调试

三、m文件的分类
可以存取的M文件— 称命令文件(程序文件、脚本文件)
可调用M文件 — 称函数(function)文件
1、程序文件 以.m格式进行存取,包含一连串的MATLAB指令和 必要的注解。与在命令窗口逐行执行文件中的所有指 令,其结果是一样的。没有输入输出参数。 程序运行时只需在命令窗口中键入其名称即可
第二章
2.1 变量与赋值 2.2矩阵的初等运算 2.3元素群运算
基本语法
2.4逻辑判断及流程控制 2.5基本绘图方法 2.6M文件及程序调试
2.6 M文件及程序调试
一、M文件简介
• 用户如想灵活应用matlab去解决实际问题,充分 调用matlab的科学技术资源,就需要编辑m文件 • 包含matlab语言代码的文件称为m文件,其扩展名 为m。
• keyboard —
当keyboard在m文件中出现时,它停止 文件的执行并控制键盘,用于修改程序。
a=input('a=');
pause(2) b=input('b=');
A='press any key to continue..'; disp(A) pause c=input('c='); keyboard d=b*b-4*a*c; disp(A) pause x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
主要特征: (1)、用clear,close all等语句开始,清除工作空间原有的 变量与图形,以避免其它已执行的程序残留数据对本程序 的影响。 (2)、前几行通常是对此程序的说明。这些注释行必须以 % 开始,以便计算机执行时不予理会。(注释部分) (3)、程序的主体 如果程序中有全局变量,即在主程序与主程序中共有 的变量,应在程序中的起始部分注明。语句为: global 变量名 (4)、整个程序按Matlab 标示符的要求其文件名,并加 上.m后缀。

MATLAB8.5教程第7章 M文件

MATLAB8.5教程第7章 M文件

格式: inline (EXPR)
%把字符串表达式转化为输入 变量自动生成的内联函数 inline((EXPR, ARG1, ARG2, ...) %把字符串表达式转 化为ARG1, ARG2等 %指定输入变量的内联函数 inline(EXPR, N) %把字符串表达式转化为N个指定输 入变量的内联函数 %输入字符必须是x,P1,P2...PN等字符
7.3.2 局部变量
• 函数不使用工作区Workspace,对于每个函数,系统都会分配一块存储
区域用于存储其产生的变量,这块区域称为函数工作区,其保存的变
量是由函数临时产生的变量,我们称之为局部变量,它只有本函数使 用,且在函数工作区有效。当函数退出时,局部变量就会消失。
• 函数M文件中的所有变量除特殊声明外都是局部变量。
• 【例7-1】建立一个文件名为average1的脚本文件,要 求计算向量元素的平均值,并求出数1到100之和。 • (1)首先建立脚本文件并以文件名average1.m 保存。 • x=input('输入向量:x='); • [m,n]=size(x); • if ~((m==1)|(n==1))|((m==1)&(n==1)) %判断输入是否 为向量 • error('必须输入向量。') • end • E=sum(x)/length(x) %计算向量x所有元素的平 均值E
7.2.3 匿名函数
匿名函数提供了一种创建简单程序的方法,使用它用 户可以不必每次都编写M文件。它可以在命令窗口、或其它
M文件中使用。 格式:FUNHANDLE = @(ARGLIST)EXPRESSION 说明:FUNHANDLE是为该函数创建的函数句柄,@符号 用于创建函数句柄;ARGLIST 是一些由逗号分隔的输入参 数,这些参数将被传输到函数;EXPRESSION,它由执行语 句组成。

M-file_matlab

M-file_matlab

Matlab-M Editor第1节启动mEditor首先要介绍一下m文件. Matlab中m文件有两种类型, 一种叫做m-function,就是函数文件, 另一种叫m-Script, 或称脚本. 前一种放在后面提及.此处只涉及后一种.当我们有很多事情要做时, 我们一般习惯于拿出一个记事本, 在其中一条一条地列出要做事项, 然后就按照记事本上事件顺序一件一件地完成. m-Script就是这样一个文件, 上面记载了Matlab要执行地每一个命令, 定义完所有命令后, Matlab就一条一条地执行.mEditor就像windows里面地记事本, 用来编辑Matlab需要做的事项.启动editor 很简单, 在command window中输入edit 即可启动mEditor, 如果在edit 后跟文件名, mEditor启动时将打开/新建这个文件.第2节一个简单例子下面在mEditor中尝试一个简单的例子. 假设我们这个m-Script文件名叫做“test.m”. 首先在命令窗口中输入edit test 打开mEditor开始编辑这个文件. 然后依次输入以下命令, 每个命令一行.: a=1b=2a=a+1b=b/2.输入完毕, 按F5 就可以运行文件了. 可以看到, 运行结果和我们直接在Command window中依次输入这些命令完全一样.第3节Matlab语句后的分号如果, matlab语句后如果没有分号, 该语句执行结果会立即在command window中显示, 而若有分号, 则执行结果不会显示. 这个技巧比较适合在很长的Script 文件中实用. 毕竟, 运算过程如果太多, 很多中间结果我们不需要知道.第4节程序调试上面的程序非常简单, 一路运行过来就可以了. 在实际工作中, 我们常遇上很复杂的程序, 又可能需要在某些特定的语句处暂时中断, 看看运行的情况, 然后再继续. 此时mEditor 的断点功能显得很有效. 罗唆两句, 先介绍一下断点. 它就像是一个路标, 指示Matlab, 当程序运行到这个路标时, 暂时停下来, 让我们进行一些操作, 之后再继续往后面走. mEditor 中设置断点很简单, 想在哪一行语句之前暂停, 就在该行行号后面的那个-处单击左键, 此时-变为红色小点, 这个断点就设置好了. 再点击红色小点, 该断点取消.此后按F5执行文件时, Matlab都会在该断点处暂停, 这时候你可以通过Commandwindow输入其它命令, 可以用Array Editor修改已有变量等等. 这些工作做完后, 想继续运行程序又要怎么办呢? 在Command window中输入return 即可从刚中断处继续运行了.。

Matlab中M-文件介绍

Matlab中M-文件介绍
格式控制输出(fprintf命令) fprintf('x=%.0f, y=%.5f\n',pi,pi); fprintf('x=%5g, y=%10.5g\n',N,pi);

M-文件中循环控制命令(for命令)


格式: for i=n1:(step):n2 commands; end 作用:重复执行命令集commands.

例1:求和:s=1+2+…+n n=input('请输入 n='); s=0; for i=1:n s=s+i; fprintf('i=%.0f, s=%.0f\n',i,s); end

例2:求奇数和:s=1+3+5+…+(2k-1) n=input('请输入 n='); s=0; for i=1:2:n s=s+i; fprintf('i=%.0f, s=%.0f\n',i,s); end
M-文件中选择控制命令(if命令)ondition is true) commands; elseif (condition is true) commands; else commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。
M-文件中输入、输出命令

直接赋值输入: x=2; a=[1,2;3,4]; s= 'any string!';
直接输出: x disp([a,b]);
提示对话输入(input命令) x=input('请输入参数 x='); a=input('请输入矩阵 a='); s=input('Please input s=');

Matlab中M-文件介绍

Matlab中M-文件介绍

02
03
运行M-文件
查看运行结果
在Matlab命令窗口中输入文件名, 然后按Enter键,即可打开指定 的M-文件。
在打开的M-文件中,按下F5键 或选择"Run"菜单中的"Run"选项, 即可运行当前M-文件。
M-文件的运行结果将在Matlab 命令窗口中显示。
调试M-文件
设置断点
在需要调试的代码行左侧单击,即可 在该行设置断点。
调试技巧
使用Matlab调试器
Matlab提供了一个功能强大的调试器,可以帮 助用户更好地理解代码的执行过程。
逐步执行代码
逐步执行代码可以帮助用户更好地理解代码的 逻辑和执行过程。
检查变量值
在调试过程中,检查变量的值可以帮助用户更好地理解代码的逻辑和执行过程。
5
M-文件的高级应用
函数封装
函数封装
开始调试
在设置断点的代码行上按下F10键或 选择"Debug"菜单中的"Step Over" 选项,即可开始调试。
单步执行
在调试过程中,按下F10键或选择 "Debug"菜单中的"Step Over"选项, 可以逐行执行代码。
观察变量值
在调试过程中,可以随时查看变量的 值,以便更好地理解代码的执行过程。
信号处理和图像处理
Matlab具有强大的信号处理和 图像处理工具箱,广泛应用于 通信、雷达和医学成像等领域

02
M-文件基础
M-文件的定义
总结词
M-文件是Matlab中用于编写和存储Matlab代码的文件。
详细描述
M-文件是Matlab中用于编写和存储Matlab代码的文件,通常以.m为扩展名。 它可以是脚本文件或函数文件,用于执行一系列Matlab命令或定义可重复使用 的函数。

MATLAB第四讲M文件

MATLAB第四讲M文件

1. MATLAB的工作模式
指令(命令)执行模式
M文件程序执行方式
①命令执行模式 通常matlab以指令驱动模式工作,即在matlab 命令窗口逐条输入命令,matlab 立即逐条解释 处理这条指令,并显示结果。 命令行操作时,matlab窗口只允许一次执行一 行上的一个或几个语句。 特点:操作简单、直观,但速度慢,执行过程不 能保留。
例 求阶乘大于或等于9999的最小整数(exwhile.m)
MATLAB
(3)循环的嵌套
如果一个循环结构的循环体又包括 一个循环结构,就称为循环的嵌套,或 称为多重循环结构。exfor.m
MATLAB
(4)break语句和continue语句 它们一般与if语句配合使用。 break语句用于终止循环的执行。 当在循环体 内执行到该语句时,程序将跳出循环,继续执 行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。 当在循环体内执行到该语句时,程序将跳过循 环体中所有剩下的语句,继续下一次循环。
MATLAB
(2)M函数参数的调用与参数传递
在MATLAB中,按照自顶向下、逐步求解的结构化 程序设计。M函数可以使程序模块化,且可通过函数调用 实现控制转移和相互的参数传递。 1)函数调用 完整函数调用的命令格式:
[输出参数1,输出参数2,…]=函数名(输入参数1,输入参数2)
2)参数可调性 在调用函数时,MATLAB用两个预定义变量nargin 和nargout分别记录调用该函数时的输入实参和输出实参 的个数。在函数文件中包含这两个变量,就可以准确地知 道该函数文件被调用时的输入输出参数个数,从而决定函 数如何进行处理。 例:练习nargin用法,example和qhnargin

第3讲 M文件

第3讲  M文件
2. 在编辑窗口中输入程序内容 3. 点:File->Save,存盘,M文件名必须 ,存盘, 文件名必须 与函数名一致。 与函数名一致。 Matlab的应用程序也以 文件保存。 的应用程序也以M文件保存 的应用程序也以 文件保存。
例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 1.建立 文件:fun.m 建立M文件 建立 文件: function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2 2. 可以直接使用函数 可以直接使用函数fun.m
money=10000; years=0; while money<20000 years=years+1; money=money*(1+11.25/100) end
3、If-Else-End结构 、 结构 (1)有一个选择的一般形式是: )有一个选择的一般形式是: if expression {commands} end 如果在表达式(expression)里的所有元素为真, 里的所有元素为真, 如果在表达式 里的所有元素为真 就执行if和 语句之间的命令串{commands}. 就执行 和end语句之间的命令串 语句之间的命令串
x2 + 1 x > 1 例 设f ( x ) = , 求f (2), f (−1) x ≤1 2x
先建立M文件 定义函数f( ), ),再在 先建立 文件fun1.m定义函数 (x),再在 文件 定义函数 Matlab命令窗口输入 命令窗口输入fun1(2),fun1(-1)即可。 即可。 命令窗口输入 即可
数学实验
M-文件
M文件 文件
MATLAB的内部函数是有限的,有时为了研究某 的内部函数是有限的, 的内部函数是有限的 一个函数的各种性态,需要为MATLAB定义新函数, 定义新函数, 一个函数的各种性态,需要为 定义新函数 为此必须编写函数文件. 函数文件是文件名后缀为M 为此必须编写函数文件 函数文件是文件名后缀为 的文件,这类文件的第一行必须是一特殊字符 的文件,这类文件的第一行必须是一特殊字符 function开始,格式为: 开始, 开始 格式为: function 因变量名 函数名(自变量名) 因变量名=函数名 自变量名) 函数名( 函数值的获得必须通过具体的运算实现, 函数值的获得必须通过具体的运算实现,并赋给因变 量. M文件建立方法:1. 在Matlab中,点:File->New->M-file 文件建立方法: 文件建立方法 中
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将matlab语句构成的程序存储成以m为扩展名 的文件,然后再执行该程序文件,这种工作 模式称为程序文件模式。
程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。
五、matlab程序流的控制
matlab的控制语句同c语言有相似之处, 但没有c 语言复 杂、灵活和多变。因而语法比较简单,容易掌握。
• echo 指令— 用来控制m文件在执行过程中是否
显示
echo on — 打开所有命令文件的显示方式 echo off — 关闭所有命令文件的显示方式 echo — 在以上两者间切换
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即在 matlab 窗口下当用户输入单行指令时,matlab 立即处理这条指令,并显示结果,这就是 matlab命令行方式。 命令行操作时,matlab窗口只允许一次执行 一行上的一个或几个语句。
例如: x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 x2=0:3:11 x2 = 0 3 6 9 x3=11.5:-3:0 x3 = 11.5000 8.5000 5.5000 2.5000
matlab的程序设计
—— matlab语言编程,
程序简洁、可读性很强
而且调试十分容易。
m文件简介
• 用户如想灵活应用matlab去解决实际问题, 充分调用matlab的科学技术资源,就需要编 辑m文件 • 包含matlab语言代码的文件称为m文件,其 扩展名为m。 • 编辑m文件可使用各种文本编辑器。
switch — case — otherwise语句
SWITCH switch_expr CASE case_expr1, statement1; CASE case_expr2 statement2; CASE case_expr2 statement3;
... OTHERWISE statements END
3. edit —— 用matlab自带的编辑器编制m文件。
4. word —— 用word编辑m文件。
三、ab文件的类型
1. 数据文件 .mat • mat文件是matlab以标准二进制格式保存的 数据文件,可将工作空间中有用的数据变量 保存下来。
• mat文件的生成和调用是由函数save和load 完成的。 例如:load gatlin
四、matlab的程序结构
matlab语言的程序结构与其它高级语言是一致 的,分为顺序结构,循环结构,分支结构。
(1).顺序结构 —— 依次顺序执行程序的各条语句 (2).循环结构 —— 被重复执行的一组语句,循环 是计算机解决问题的主要手段。 循环语句主要有:
for — end 语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end 例:利用for循环求1!+2!+3!+ +5!的值 sum=0; for i=1:5 pdr=1; sum = for k=1:i pdr=pdr*k; 153 end sum=sum+pdr; end
matlab 的能力。

对于某一类特殊问题,如创建了许多m函数 文件,则可形成新的工具箱。

这种用matlab语言创建定义新的matlab函数的 功能,正体现了matlab语言强大的扩展功能。
函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段 特定规则: 1. 函数m文件第一行必须以单词function作为引导词, 必须遵循如下形式: function <因变量>=<函数名>(<自变量>) 2. m文件的文件名必须是<函数名> .m。 3. 程序中的变量均为局部变量,不保存在工作空间中。 其变量只在函数运行期间有效。
• 文件一旦打开,即可进行读写操作。 sta=fclose(fid) —— 关闭上述打开文件 sta=fclose(all) —— 关闭所有打开的文件 • 与save,load类似,是matlab专用数据文件读写工 具(*.mat)。 2. 读写二进制数据文件 fread, fwrite —— 可读写数据文件,文本文件。 例:fid=fopen(‘user.dat’,’r’) a=fread(fid,50) sta=fclose(fid)
matlab文件输入、输出(I/O)函数允许把其它格式的 数据文件直接读进matlab,它是以c语言文件I/O函数 为基础的。 1. 打开和关闭文件(fopen, fclose) 格式:fid=fopen(‘数据文件’,‘r’) ‘r’ —— 读 ‘w’ —— 写 ‘a’ —— 附加 ‘rt’ —— 读写
又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的绝对值
det(a)—— 求行列式的值
等等。matlab拥有大量的内置数学函数,供我们在数
值运算和符号运算中调用。
(3). 函数m文件— 需要输入变量,返回输出变量
• matlab用户可以根据需要编辑自己的m文件,它们可
以像库函数一样方便的调用,从而极大地扩展了
• 命令文件包括两部分:注释文件和程序文件
%RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that are larger than MAX(SIZE(X)) * NORM(X) * EPS. % K = RANK(X,tol) is the number of singular values of X that % are larger than tol. % Copyright (c) 1984-94 by The MathWorks, Inc.
(3). 分支结构——根据一定条件来执行的各条语 句。 if — else — end语句有3种形式 if 表达式 执行语句 end if 表达式 ——— 是 语句1 else ———— 否 语句2 end
if
表达式1 ——— 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 · · · else 语句n end
image(X) colormap(gray); axis equal; axis('off')
2. m文件 m文件的语法类似于c语言,但又有其自身特 点。它只是一个简单的ASCII码文本文件,执 行程序时逐行解释运行程序,matlab是解释性 的编程语言。 m文件有两类独立的m文件 — 称命令文件 可调用m文件 — 称函数文件 (1). 命令文件 — 简单的m文件 命令文件实际上是一串指令的集合,与在命 令窗口逐行执行文件中的所有指令,其结果是 一样的。没有输入输出参数。
while — end 循环
while循环将循环体中的语句循环执行不定 次数。 语法为:while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一 般运算组成的,以判断循环的进行和停止; 只要表达式的值 非0,继续循环;直到表达式 值为0,循环停止。
例:用while循环求1~100间整数的和 sum=0; i=1; while i<=100 sum=sum+i; i=i+1; end sum sum = 5050
二、m文件的创建

m文件的类型是普通的文本文件,我们可以 使用系统认可的文本文件编辑器来建立m文件。 如dos下的edit,windows的记事本和word等。
具体的创建方法: 1. 在matlab命令窗 口点击file 菜单 new m-file
2. 点击file — Save Workspace As 将工作空间中的内容存入文件。
s = svd(x); if (nargin == 1) tol = max(size(x)) * max(s) * eps; end r = sum(s > tol);
程序部分
(2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法:使用函数名并给出相 应的入口、出口参数即可。 例如:sin.m函数——用type sin查不到。 调用格式:y=sin(2*x) 1 实际应用中: 0.8 0.6 x=0:2*pi/180:2*pi; 0.4 y=sin(2*x) 0.2 plot(x,y) 0
• input —— 提示用户从键盘输入数值、字符串、表达 式。 例:n=input('How many apples= ') How many apples= 5 n= 5 • pause —— 暂停,等待用户响应 可令m文件执行暂停,并在继续执行前按任一个键 。 • return ——返回 使当前正在运行的函数正常退出,并返回调用它的 函数,继续运行。
9 10
x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9 x3 = 11.5000 8.5000 5.5000 2.5000 • 在matlab窗口输入数据和命令进行计算时, 当处理复杂问题和大量数据时是不方便的。 因此应编辑m文件。
• break —— 中断
break 中断for, while循环语句的执行,在嵌套循环结 构中, break从最里层循环退出。
• continue —— 继续 与for, while循环语句一起使用,结束本次循环,即跳 过循环体中尚未执行的语句,接着进行下一次是否执 行循环的判断。
六、文件操作
相关文档
最新文档