第三章 matlab程序设计

合集下载

第3章__MATLAB程序设计[1]

第3章__MATLAB程序设计[1]

2.while语句 . 语句 条件循环语句: 条件循环语句:while … end while (条件 条件) 条件 循环体语句 end 其执行过程为:若条件成立, 其执行过程为:若条件成立,则执行循环体 语句,执行后再判断条件是否成立, 语句,执行后再判断条件是否成立,如果不 成立则跳出循环。 成立则跳出循环。 从键盘输入若干个数,当输入0时结束 例3.7 从键盘输入若干个数,当输入 时结束 输入,求这些数的平均值和它们之和。 输入,求这些数的平均值和它们之和。
说明: 说明: 1. 对循环次数的一个判断; 对循环次数的一个判断; 2.最好用矩阵或向量而不用 最好用矩阵或向量而不用for, 最好用矩阵或向量而不用 3.写成锯齿形增加可读性 用;屏蔽中间结果 写成锯齿形增加可读性,用 屏蔽中间结果. 写成锯齿形增加可读性 s=0; = for k=1:100 S=s+k; end K=1:100 Sum(k)
矩阵乘法运算要求两矩阵的维数相容, 例 矩阵乘法运算要求两矩阵的维数相容,否则会出 错。先求两矩阵的乘积,若出错,则自动转去求两矩 先求两矩阵的乘积,若出错, 阵的点乘。 阵的点乘。 程序如下: 程序如下: 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 %显示出错原因 显示出错原因
说明: 说明: 1.if和else必须对应,否则易错; 1.if和else必须对应,否则易错; 必须对应 2.可用elseif增加选择结构 2.可用elseif增加选择结构 可用elseif
2.switch语句 . 语句
情况切换语句:switch , case , otherwise , end switch 表达式 case 表达式 表达式1 语句组1 语句组 case 表达式 表达式2 语句组2 语句组 …… case 表达式m 表达式 语句组m 语句组 otherwise 语句组n 语句组 end

MATLAB3章程序设计

MATLAB3章程序设计
菜单操作 ( File New M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 )
打开已有的 M 文件
菜单操作 ( File Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件
(2). windows记事本和word建立M文件
2013年8月13日7时49分
24
例题 function c=test(a,b) %主函数 c=test1(a,b)*test2(a,b); function c=test1(a,b) %子函数1 c=a+b; function c=test2(a,b) %子函数2 c=a-b;
子函数则只能在主函数文件中编辑
3.2 函数文件
•3.2.1 •3.2.2 •3.2.3 •3.2.4 •3.2.5 M文件分类 函数文件的基本结构 函数调用 全局变量和局部变量 子函数与局部函数
3.2.1 M文件的分类
1. 根据不同调用方式两类 ① Script:脚本文件/命令文件
② Function:函数文件
2. 命令文件 —
2013年8月13日7时49分
调用test4: >> a=[4 3 5;6 7 8;3 5 7;1 3 4]; >> test4(A) ans = 4.6667 >> global s ss >> ss ss = 56 >> s s= 12 21 15 8
23
3.2.5 子函数与局部函数
一个M文件可以包含多个函数,其中,一个是主函数,其他 是子函数。 主函数必须出现在最上方,其后可有若干子函数,子函数的 次序可随意调整。主函数和各子函数的工作空间都是彼此独 立的。 私有函数是主函数的一种,是private子目录中的函数。它们 只对父目录中的函数可见。 子函数只能为主函数或同一主函数下的其他的子函数所调用

第三章-Matlab软件的程序设计课件

第三章-Matlab软件的程序设计课件


statements
• elseif expression

statements
• else

statements
• end
PPT学习交流
12
for循环语句
• for语句—般用于循环次数确定的循 环结构,它的调用格式如下:
• for variable = expr, statement, ..., statement end
第三章
之Matlab软件的程序设计
PPT学习交流
1
概述
• 主要介绍如下几个方面的内容:
• (1)M文件的功能和特点;
• (2)编制M文件和M函数文件的基本方法和重要 步骤;
• (3)Matlab软件中流程的控制方法、语句格式和 应用方法;
• (4)典型编程实例的分析与讲解;
• (5)导入与导出数据的基本方法。
19
举例2绘制电机机械转矩与转速函数 曲线
• 一台三相感应电动机,参数分别为:230V,60Hz, 12kW,4极绕线式转子,定子有效电阻R1=0.095, 定子漏电抗X1=0.680,转子漏电抗X2=0.672,磁 化电抗X2=18.7,在转子有效电阻R2=0.1,0.2, 0.5,1.0,1.5和2时,利用Matlab软件绘制电机的 机械转矩Tmech作以r/min为单位的转子转速的函 数时的变化曲线
• 在Matlab命令窗口中键入下面的命令语句:
PPT学习交流
23
PPT学习交流
24
Matlab工具箱的查看方法
• 放入一个目录中的为某种目的专门编写的 一组Matlab函数就可以组成一个工具箱。 从某种意义上说,任何一个Matlab语言的

《MATLAB程序设计教程》第3章MATLAB程序设计

《MATLAB程序设计教程》第3章MATLAB程序设计

《MATLAB程序设计教程》第3章MATLAB程序设计《MATLAB程序设计教程(第二版)》的第3章主要介绍了MATLAB程序设计的基本概念和基本语法。

本章内容包括MATLAB程序的基本结构、变量的定义和使用、矩阵和向量的操作、条件语句和循环语句的使用、MATLAB函数及其调用、输入和输出等。

首先,本章介绍了MATLAB程序的基本结构。

一个MATLAB程序包含多个部分,包括脚本文件、函数文件、注释等。

脚本文件是由一系列MATLAB语句组成的,按照顺序执行。

函数文件是由函数定义和函数体组成的,可以在其他脚本文件或函数文件中调用。

接着,本章介绍了MATLAB中变量的定义和使用。

MATLAB中的变量是用来存储数据的,可以是数字、字符、字符串等。

变量可以使用等号进行赋值,并且可以进行各种运算操作。

MATLAB中的变量有严格的命名规则和作用域,需要注意命名的规范。

然后,本章介绍了MATLAB中矩阵和向量的操作。

MATLAB可以通过矩阵和向量进行复杂的数值计算。

可以通过矩阵的加减乘除、转置、求逆等操作来实现各种数值运算。

MATLAB还提供了许多便捷的函数来操作矩阵和向量,例如最大最小值、平均值、排序等。

接下来,本章介绍了条件语句和循环语句的使用。

条件语句用来根据条件执行不同的操作,包括if语句和switch语句。

循环语句用来重复执行一段代码,包括for循环、while循环和do-while循环。

这些语句可以有效地控制程序的逻辑流程,并实现各种复杂的计算。

然后,本章介绍了MATLAB函数及其调用。

函数是由一系列语句组成的,可以重复使用。

可以在MATLAB程序中定义自己的函数,并在程序中调用。

函数可以接受输入参数,经过运算后返回输出结果,可以大大提高程序的重复利用性和代码的模块化程度。

最后,本章介绍了MATLAB的输入和输出。

MATLAB可以通过命令窗口进行输入输出,也可以通过文件进行输入输出。

可以使用各种函数来读取和写入数据,包括文本文件、二进制文件等。

《MATLAB程序设计》PPT课件

《MATLAB程序设计》PPT课件

程序2(函数式文件) 首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c= 21.1111 x= 21.1111
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);
例3-6 某商场对顾客所购买的商品实行打折 销售,标准如下(商品价格用price来表示): price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。
(2) 双分支if语句: if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语 句组2,语句组1或语句组2执行后,再执行 if语句的后继语句。
例3-4 计算分段函数的值。 程序如下: x=input('请输入x的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end Y

03 Matlab程序设计

03 Matlab程序设计

一般调试技术
语句末分号(取消分号) 利用keyboard语句; 函数文件转换为脚本文件 利用调试器:设置断点、单步执行…
调试演示
m文件的创建、执行演示
编写m文件,将华氏温度转换为摄氏温度。
eg3_1.m
%华氏温度转换为摄氏温度 clear; %清除工作空间中的变量 h=input('输入华氏温度:'); c=5*(h-32)/9
演示3
(3)m文件的类型
独立的m文件 — 脚本文件 是一串指令的集合 与在命令窗口逐行执行文件中的指令一样 没有输入输出参数。 可调用的m文件 — 内置函数文件 用户自编函数文件 函数文件
(1)m文件创建方法 系统认可的文本文件编辑器 windows的记事本、word 利用matlab附带的 m文件编辑器
(2)m文件编辑器创建m文件示例
在matlab命令窗口点击file 菜单new → m-file 在编辑窗口输入指令 演示2 保存在工作路径中
m文件的存储路径: 默认路径 :\MATLAB71\work\ 其它路径 自己设定 创建的m文件必须纳入matlab搜索路径, 才能在matlab命令窗口运行。 搜索路径修改演示 m文件的创建、执行演示
第三讲 Matlab 程序设计
张 燕平 09-05-27, 09:44
matlab的工作模式 m文件的创建 m程序的流程控制 参数交互输入 程序设计技术 程序调试
1、matlab的工作模式
(1)指令驱动模式
matlab命令行方式 在命令窗口中执行命令 要点: 一次只能执行一行; 一行中可以有一个或几个语句(逗号分隔); 例: >>x1=0:10 >> x1=0:10,x2=0:3:11

第3章Matlab程序设计精品PPT课件

第3章Matlab程序设计精品PPT课件

顺序结构是指按照程序中语句的排列顺序依次执 行,直到程序的最后一个语句。(最简单的一种 程序)
1、数从据键的盘输输入入数据,则可以使用其in中pu提符t示串函信,数息用来为于一提进个示行字用,
调用格式为:
户输入数据。
A = input(提示信息,选项);
例如:从键盘输入A矩阵,可以采用下面的命令 来完成
A = input(‘输入A矩阵’);
如果在input函数调用时采用’s’选项,则允许用 户输入一个字符串。
例:xm = input(‘What’’s your name?’,’s’);
2020/10/162011-3-4
Matlab Language
10
3.2.1 顺序结构
2、数据的输出 命令窗口输出函数主要有disp函数,其调用格式为: disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。例如: A = ‘Hello, Tom’; disp(A) 输出为:Hello, Tom 又如:A = [1,2,3;4,5,6;7,8,9]; disp(A) 输出为: 123 456 7 8 9 %disp函数输出格式更紧凑
Matlab
工程学院
程序设计的基本步骤
☻ 1.清晰地陈述出你要解决的问题。 ☻ 2.确定程序所需地输入量和程序所产生
的输出量。 ☻ 3.为你的程序设计算法 ☻ 4.将算法转化为MATLAB 语句 ☻ 5.调试MATLAB 程序
2020/10/162011-3-4
Matlab Language
2
Matlab命令的执行方式
2020/10/162011-3-4
Matlab Language
12
3.2.1 顺序结构

MATLAB课件第3章MATLAB程序设计

MATLAB课件第3章MATLAB程序设计
a=1:10; b=[11,12,13,14;15,16,17,18];
c=a;a=b;b=c;
a
b 然后在MATLAB的命令窗口中输入exch,将会执行 该命令文件。
2020/8/11
目录
函数文件
用M文件自定义函数,开头为: function yname = fname(xname) yname: 因变量名,fname: 函数名,xname:自变量 名. 文件名为fname,即与函数名相同. • 与命令文件不同 ,函数文件犹如一个“黑箱”,把一些
目录
例3.4 求一元二次方程ax2 +bx+c=0的根。 程序如下:
a=? 3
a=input('a=?'); b=input('b=?'); b=? 4 c=input('c=?'); c=? 9
d=b*b-4*a*c; x1=-0.66667+1.5986i,x2=-0.66667-1.5986i
已知打折标准为: 商品价格小于200元时,折扣率为0; 商品价格大于或等于200元且小于500时,折扣率为0.03; 商品价格大于或等于500且小于1000元时,折扣率为0.05; 商品价格大于或等于1000且小于2500元时,折扣率为0.08; 商品价格大于或等于2500且小于5000元时,折扣率为0.1; 商品价格大于或等于5000元时,折扣率为0.14; 求所售商品的实际销售价格。if 条源自 语句组1else 语句组2
end 当条件成立时,执行语句组1,否则执行语句 组2,语句组1或语句组2执行后,再执行if语句 的后继语句。
2020/8/11
目录
例3.4计算分段函数值 ycos(x1) x21,x10

第3章 MATLAB程序设计

第3章  MATLAB程序设计

2、在MATLAB的命令窗口输入以下命令并调用该函数文件。 clear; y=input('Input radii:'); [s,p]=fcircle(y) 3、输出情况:Input radiis:3 s= 28.2743 p=
18.8496
例3-1 分别建立命令文件和函数文件,将华 氏温度f转换为摄氏温度c, c=5/9(f-32)。
2 M文件的建立与打开
1)建立新的M文件 为建立新的M文件,启动MATLAB文本编 辑器有3种方窗中输入edit (3) 命令按钮操作。
2)打开已有的M文件 也有3种方法: (1) 菜单操作。 (2) 命令操作。命令窗口输入命令: edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。
• (4). 系统文件——s函数 • 用于描述系统运动的专用函数,是特殊的 m 文件。 • s 函数有3类: 由simulink结构图自动创建 • 可用c语言程序设计mex文件 直接定义 • 用函数m文件编写 • s函数一旦创建,即可在框图中使用,也可在 文件中调用。
S函数的调用格式
-0.2 -0.4
• 又如 sqrt(x) —— 求x的平方根 • abs(x)—— 求x的绝对值 • det(a)—— 求行列式的值 • 等等。matlab拥有大量的内置数学函数, 供我们在数值运算和符号运算中调用。 • (3). 函数m文件— 需要输入变量,返回输出 变量 • matlab用户可以根据需要编辑自己的m文件, 它们可以像库函数一样方便的调用,从而极 大地扩展了matlab 的能力。
s = svd(x); if (nargin == 1) tol = max(size(x)) * max(s) * eps; end r = sum(s > tol);

matlab 第三章--程序设计

matlab 第三章--程序设计

(一)选择结构
【例4】 输入三角形的三条边,求面积。 A=input('请输入三角形的三条边:'); if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) & A(2)+A(3)>A(1) p=(A(1)+A(2)+A(3))/2; s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3))); disp(s); else disp('不能构成一个三角形。') end
8、MATLAB程序的基本组成结构 %说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 … … … 提供的专用命令 控制循环 :包含for,if then,switch,while等语句 逐行执行命令 … … … 绘图命令:将运算结果绘制出来
函数基本格式: (1)函数定义行(关键字function) function[out1,out2,..]=filename(in1,in2,..) 输入和输出(返回)的参数个数分别由nargin和 nargout两个MATLAB保留的变量来给出。 (2)第一行帮助行,即H1行 以(%)开头,作为lookfor指令搜索的行 (3)函数体说明及有关注释 以(%)开头,用以说明函数的作用及有关内容, 作为help指令显示的行。如果不希望显示某段信 息,可在它的前面加空行 (4)函数体语句
(5)函数参数
[输出参数1,输出参数2,…]=函数名(输入 参数1,输入参数2,…)
1、nargin 函数体内获取实际输入变量的个数 2、nargout 函数体内获取实际输出变量的个数 3、nargin(‘fun’) 函数体外获取定义输入变量数 4、nargout (‘fun’) 函数体外获取实际输出变量数 5、varargin 获得输入变量的各元素内容 6、varargout 获得输出变量的各元素内容 见文件 mysum.m

第3章 MATLAB程序设计

第3章  MATLAB程序设计

分别建立命令文件和函数文件, 例3-1 分别建立命令文件和函数文件,将华 氏温度f转换为摄氏温度 转换为摄氏温度c。 氏温度 转换为摄氏温度 。 程序1: 程序 : 首先建立命令文件并以文件名f2c.m存盘。 存盘。 首先建立命令文件并以文件名 存盘 clear; %清除工作空间中的变量 清除工作空间中的变量 f=input('Input Fahrenheit temperaturTLAB的命令窗口中输入 ,将会 的命令窗口中输入f2c, 然后在 的命令窗口中输入 执行该命令文件,执行情况为: 执行该命令文件,执行情况为: Input Fahrenheit temperature:73 : c= 22.7778
利用函数的递归调用, 例3-16 利用函数的递归调用,求n!。 !。 n!本身就是以递归的形式定义的: 本身就是以递归的形式定义的: 本身就是以递归的形式定义的 显然, 需要求(n-1)!,这时可采用递归调 显然,求n!需要求 需要求 , 递归调用函数文件factor.m如下: 如下: 用。递归调用函数文件 如下 function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; %递归调用求 递归调用求(n-1)! 递归调用求 end
程序2: 程序 : 首先建立函数文件f2c.m。 首先建立函数文件 。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 的命令窗口调用该函数文件。 然后在 的命令窗口调用该函数文件 clear; y=input('Input Fahrenheit temperature:'); : x=f2c(y) 输出情况为: 输出情况为: Input Fahrenheit temperature:70 : c= 21.1111 x= 21.1111

Matlab课件教程2第3章程序设计

Matlab课件教程2第3章程序设计

3.2 控制语句
• 3.2.1 表达式、表达式语句与赋值语句 • 1.表达式 • 2.表达式语句 • 2.赋值语句
3.2.2 程序流程控制语句
• 1.循环语句 • 2.选择语句 • 3.分支语句
3.2.3 程序流程控制指令
• 中断命令break • return指令 • 等待用户反文件是使用MATLAB语言编写的程序代码 文件。之所以称为M文件,是因为这种文件 都以“.m”作为文件扩展名。用户可以通过 任何文本编辑器或字处理器来生成或编辑M 文件,但是在MATLAB提供的M文件编辑器 中生成或编辑M文件是最为简单、方便而且 高效的。
3.1.1 命令式文件
3.2.4 人机交互语句
• echo命令 • input命令 • keyboard命令
3.2.5 MATLAB程序的调试命令
• dbstop命令 • dbcont命令 • dbstep命令 • dbstack命令 • dbstatus命令 • dbtype命令 • dbquit命令
3.3 函数变量及其作用域
• 在MATLAB中,实现某项功能的一串 MATLAB语句命令余函数组合成的文件叫命 令式文件。这种M文件在MATLAB的工作空 间内对数据进行操作,能在MATLAB环境下 直接执行。命令式文件不仅能够对工作空 间内已存在的变量进行操作,并能将建立 的变量及其执行后的结果保存在MATLAB工 作空间里,供在以后的计算中使用。
3.1.2 函数式文件
• MATLAB函数通常是指MATLAB系统中以设 计好的完成某一种特定的运算或实现某一 特定功能的一个子程序。MATLAB函数或函 数文件是MATLAB语言中最重要的组成部分, MATLAB提供的各种各样的工具箱几乎都是 以函数形式给出的。MATLAB的工具箱是内 容极为丰富的函数库,可以实现各种各样 的功能。

matlab程序设计第三章课后习题答案

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制以下两条曲线并标注两曲线交叉点。

>> t=0:0.01:pi;>> x1=t;>> y1=2*x1-0.5;>> x2=sin(3*t).*cos(t);>> y2=sin(3*t).*sin(t);>> plot(x1,y1,'r-',x2,y2,'g-')>> axis([-1,2,-1.5,1])>> hold on>> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*');截图:p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。

function [ output_args ] = Untitled2( input_args )%UNTITLED2 Summary of this function goes here% Detailed explanation goes heretheta=0:0.01:2*pi;a=input('请输入a的值:');b=input('请输入b的值:');n=input('请输入n的值:');rho=a*sin(b+n*theta);polar(theta,rho,'k');end下面以a=1,b=1,n=1的极坐标图形为根底来分析a、b、n的影响。

对a的值进行改变:比照发现a只影响半径值的整倍变化对b的值进行改变:比照发现b的值使这个圆转换了一定的角度对n的值进行改变:比照发现当n>=2时有如下规律1、当n为整数时,图形变为2n个花瓣状的图形2、当n为奇数时,图形变为n个花瓣状的图形分别让n为2、3、4、5同时改变b和n的值,比照发现图形变为2n个花瓣状,并且还旋转了一定角度1 绘制sin(x)曲线,通过句柄修改曲线的颜色,要求:a)生成曲线的同时,获取句柄,再修改颜色;>> x=0:pi/50:2*pi;>> y=sin(x);>> h=plot(x,y)h =>> set(h,'color','r');截图如下:b〕先生成曲线,然后再获取句柄,再完成颜色修改。

第三章matlab程序设计

第三章matlab程序设计

0.5457e0.75x 22 3.75x12 1.5x1 x1 x2 1
p(x1, x2 ) 0.7575ex22 6x12
1 x1 x2 1
0.5457e
0.75
x
2
2
3.75
x
1
2
1.5x
1
x1 x2 1
a=2;b=2; clf; x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y)
3.1 M文件
3.1.1 M文件概述 用MATLAB语言编写的程序,称为M
文件。M文件可以根据调用方式的不同分为 两类:命令文件(Script File)和函数文件 (Function File)。
3.1 M文件
例 分别建立命令文件和函数文件,将华氏温度 f 转换为摄 氏温度c。
首先建立命令文件并以文件名f2c.m存盘。
a=input('请输入字符:','s'); x=find(a>='a'&a<='z'); y=find(a>='A'&a<='Z'); ascii_a=double(a); ascii_a(x)=ascii_a(x)-32; ascii_a(y)=ascii_a(y)+32; char(ascii_维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的 点乘。
程序如下:
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

第三章 Matlab的程序设计

第三章 Matlab的程序设计
x=input('请输入x的值: ');
if x<=0
x 2
y= (x+sqrt(pi))/exp(2);
else

, x 0
y=log(x+sqrt(1+x*x))/2;
end y
log( x ) 1 x 2 ,x 0 2
15
(3) 多分支if语句: if 条件1 语句组1
elseif 条件2
otherwise
plot(t,y,’k’) end %其他情况一律用黑色
18
3.2.3 循环结构
1.for语句 For语句是一种循环语句,可以让用户很方地实现循环操
作,从而可以从容地应付大规模的循环语句。
(1)单循环
for 循环变量=表达式1:表达式2:表达式3
循环体语句 end 其中表达式1的值为循环变量的初值,表达式2的值为步 长,表达式3的值为循环变量的终值。步长为1时,表达式2 可以省略。
运行结果:
39
48
57
66
21
2.while语句
与for循环不同,while循环的判断控制可以是逻辑判断语句,
因此,它的循环次数可以是一个不定数。这样就赋予了它 比for循环更广泛的用途。 while (条件) 循环体语句
end
其执行过程为:若条件成立,则执行循环体语句,执行后再
判断条件是否成立,如果不成立则跳出循环。
step单步执行同dbstepstepin深入被调函数同dbstepinstepout跳出被调函数同dbstepoutruncontinue连续执行setclearbreakpoint设置或清除断点gountilcursor运行到鼠标所在行setclearconditionalbreakpoint设置或清除条件断点clearbreakpointsinallfiles清除所有的断点stopiferrorswarnings出现错误警告如何操作exitdebugmode退出调试模式同dbquit32例如计算向量的标准偏差函数为strdvmfunctionfstrdvxllengthx
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章MATLAB程序设计3.1 M文件3.2 程序控制结构3.3 函数及函数文件3.4Matlab的文件操作 3.5 程序调试3.1 M文件3.1.1 M文件概述用MATLAB语言编写的程序,称为M文件。

M文件可以根据调用方式的不同分为两类:命令文件(Script File)函数文件(Function File)例3-1 分别建立命令文件和函数文件,将华氏温度f 转换为摄氏温度c。

程序1:首先建立命令文件并以文件名f2c.m存盘。

clear; %清除工作空间中的变量f=input('Input Fahrenheit temperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:Input Fahrenheit temperature:73c =22.7778程序2:首先建立函数文件ftoc.m。

function c=ftoc(f)c=5*(f-32)/9;然后在MATLAB的命令窗口调用该函数文件。

clear;y=input('Input Fahrenheit temperature:'); x=ftoc(y)输出情况为:Input Fahrenheit temperature:70c =21.1111x =21.11113.1.2 M文件的建立与打开M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件2. 打开已有的M文件菜单工具按钮edit/edit filenameopen filename3.2 程序控制结构3.2.1 顺序结构1.数据的键盘输入reply=input(string);%从键盘键入数值、已存在的变量或表达式,赋值给变量replyreply=input(string,‘s’); %键入的内容作为字符串2.数据的输出disp(expression) %显示表达式的值4. 格式化输入和输出数据sscanf和fprintf 函数textread 函数5.程序的暂停pause(延迟秒数)pause程序的终止Ctrl+C命令例3-2 输入x,y的值,并将它们的值互换后输出。

程序如下:str= ‘Input x please.’;x=input(s);y=input('Input y please.');z=x;x=y;y=z;disp(x);disp(y);例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))]);1.if 语句在MATLAB 中,if 语句有3种格式。

(1) 单分支if 语句:if 条件语句组end(2) 双分支if 语句:if 条件语句组1else语句组2end3.2.2 选择结构(3) 多分支if 语句:if 条件1语句组1elseif 条件2语句组2……elseif 条件m 语句组m else语句组n end例3-4 计算分段函数的值。

程序如下:x=input('请输入x的值:');if x<=0y= (x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy例3-5 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。

c=input('请输入一个字符','s');if c>='A' & c<='Z'disp(char(abs(c)+abs('a')-abs('A')));elseif c>='a'& c<='z'disp(char(abs(c)-abs('a')+abs('A')));elseif c>='0'& c<='9'disp(abs(c)-abs('0'));elsedisp(c);end2.switch语句switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch switch_exprcase case_exprstatement,...,statementcase {case_expr1,case_expr2,case_expr3,...}statement,...,statement...otherwisestatement,...,statementend(1)switch_expr is a scalar or a string(2)case_expr is a scalar, a stringor a cell array例3-6 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price<100 没有折扣100≤price<500 3%折扣500≤price<1000 5%折扣1000≤price<2500 8%折扣2500≤price<5000 10%折扣5000≤price 14%折扣输入所售商品的价格,求其实际销售价格。

程序如下:price=input(‘请输入商品价格:');switch fix(price/100)case 0 %价格小于100rate=0;case {1,2,3,4} %价格大于等于100但小于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 %价格大于等于5000rate=14/100;endprice=price*(1-rate) %输出商品实际销售价格ExampleTo execute a certain block of code based on what the string, method, is set to,method = 'Bilinear';switch lower(method)case {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end3.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。

例3-7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。

先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

程序如下:A=[1,2,3;4,5,6],B=[7,8,9;10,11,12]tryC=A*B;catchC=A.*B;endClasterr%显示出错原因3.2.3 循环结构1.for语句最常用格式for 循环变量=冒号表达式循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。

步长为1时,表达式2可以省略。

例3-8 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。

输出全部水仙花数。

程序如下:for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endendfor语句更一般的格式为:for 循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。

例3-10 写出下列程序的执行结果。

s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23]for k=ak,pauses=s+k;endss=0;a=[12,13,14;15,16,17;18,19,20;21,22,23]for k=1:size(a,2)ks=s+a(:,k);ends2.while语句while expressionstatementsendThe results of expression:a logical scalara logical arraya numerical scalar or array例3-11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

程序如下:sum=0;cnt=0;val=input('Enter a number (end in 0):');while (val~=0)sum=sum+val;cnt=cnt+1;val=input('Enter a number (end in 0):');endif (cnt> 0)summean=sum/cntend3.break语句和continue语句与循环结构相关的语句还有break语句和continue 语句。

它们一般与if语句配合使用。

break 语句用于终止循环的执行。

当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。

continue 语句控制跳过循环体中的某些语句。

当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。

例3-12 求[100,200]之间第一个能被21整除的整数。

相关文档
最新文档