5章MATLAB程序设计1
第五讲MATLAB程序设计ppt课件

语句组m
otherwise
语句组n
end
(exswitch.m)
第五讲 MATLAB程序设计
18
(3)try语句 语句格式为: try
语句组1 catch
语句组2 end
try语句先试探性执行语句组1,如果语句组1在执行 过程中出现错误,则将错误信息赋给保留的lasterr 变量,并转去执行语句组2。
第五讲 MATLAB程序设计
14
2、选择结构
(1) 条件分支语句——if语句 在MATLAB中,if语句有3种格式。 1) 单分支if语句: if 条件 语句组
end
第五讲 MATLAB程序设计
15
2) 双分支if语句: if 条件
语句组1 else
语句组2 end
第五讲 MATLAB程序设计
16
第五讲 MATLAB程序设计
24
三、程序调试
1 错误分类
一般来说,应用程序的错误有两类:
一类是语法错误,例如函数名的拼写错、表达式 书写错等。
另一类是运行时的错误。指程序的运行结果有错 误,这类错误也称为逻辑错误。
第五讲 MATLAB程序设计
25
2、查找逻辑错误的方法:
◆ 删去语句行末的分号,使显示其运行中间结果 ◆ 利用keyboard 命令实现,return继续程序执行 ◆ 注释掉M 函数文件的函数定义行,使函数文件转
第五讲 MATLAB程序设计
19
例: 矩阵乘法运算要求两矩阵的维数相容,否则会 出 错。先求两矩阵的乘积,若出错,则自动转去 求两矩阵的点乘。(extry.m)
第五讲 MATLAB程序设计
20
3、 循环结构
(1)硬循环语句——for语句
《MATLAB程序设计》PPT课件

3.1.2 M文件的分类
➢ 分类:
独立的m文件 — 称命令文件(Script File),主程序
命令文件实际上是一串指令的集合,与在命令窗口逐行 执行文件中的所有指令,其结果是一样的。没有输入输 出参数。
可调用m文件 — 称函数文件(Function File),子程 序
第一行包含function,需要输入变量,返回输出变量
例3.16 编写函数文件求半径为r的圆的面积和周长。
function [s,p] = fcircle(r) %CIRCLE calculate the area and perimeter of a circle of radii r % r 圆半径 % s 圆面积 % p 圆周长
67 89 76 87
3.4.2 while语句
while语句的一般格式为: while (条件)
循环体语句 end
其执行过程为:若条件成立,则执行循环体语 句,执行后再判断条件是否成立,如果不成立 则跳出循环
例3.13 根据矩阵指数的幂级数展开式求矩阵指数。
eAIA 1A 2.. .1A m...
3.2 数据的输入输出
3.2.1 input函数
➢ 调用格式为: A=input (提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入 什么样的数据。
A=input('A= ') ➢ 如果在input函数调用时采用's'选项,则允许用户
输入一个字符串。例如,想输入一个人的姓名, 可采用命令:
例3.4计算分段函数值。
程序如下: x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y
第05章_MATLAB绘图_参考解答

第 5 章:MATLAB 绘图
程序设计:
clear all; close all; clc; ezplot('x^2+y^2=1'); axis([-1.5,1.5, -1.5,1.5]); 运行结果:
(4) 程序设计:
clear all; close all; clc; t=-10:0.1:10; x=t.^2; y=5*t.^3; plot(x,y); 运行结果:
第 5 章:MATLAB 绘图
9. 利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操 作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。
(1) y = 1+ x2 1+ x4
答:
(2) y = 3x + sin x − ex
(1) 程序设计:
clear all; close all; clc;
高教社刘卫国《MATLAB 程序设计与应用》(第二版)习题参考解答
第 5 章:MATLAB 绘图
set(hf,'color','r','linestyle',':','marker','*','linewidth',1); text(4, 0.25, 'y=(1+x^{2})/(1+x^{4})');
7
WangChengyou © Shandong University, Weihai
高教社刘卫国《MATLAB 程序设计与应用》(第二版)习题参考解答
x=linspace(-10,10,200); y=[]; for x0=x
MATLAB程序设计

MATLAB程序设计MATLAB程序设计简介MATLAB是一种用于数学计算、数据分析和可视化的高级编程语言和环境。
它在科学、工程和其他领域中被广泛应用,让用户能够快速开发各种应用程序和算法。
本文将介绍MATLAB程序设计的基本知识和技巧,帮助读者快速上手并编写高效的程序。
基本语法MATLAB的基本语法与其他编程语言类似,包括变量定义、运算符、控制流程等。
以下是一些常用的基本语法:变量定义MATLAB中的变量不需要预先声明类型,直接使用即可。
变量名是大小写敏感的,并且不能使用保留字作为变量名。
matlabx = 5;y = 'Hello MATLAB!';z = [1 2 3 4 5];运算符与其他编程语言一样,MATLAB支持各种数学运算符和逻辑运算符,可以进行加减乘除、比较和逻辑操作等。
matlaba = 5 + 3;b = 7 2;c = (a > b) && (b < 10);控制流程MATLAB提供了各种控制流程语句,如条件语句、循环语句等,可以根据条件执行不同的操作。
matlabif x > 0disp('x is positive');elseif x < 0disp('x is negative');elsedisp('x is zero');endfor i = 1:5disp(i);endwhile x < 10x = x + 1;end函数定义和调用函数是MATLAB程序设计的重要组成部分,可以封装一些常用的操作和算法,并在需要时调用。
以下是函数的定义和调用示例:matlabfunction result = add(a, b)result = a + b;endx = 3;y = 4;z = add(x, y);数据处理和可视化MATLAB提供了丰富的数据处理和可视化工具,可以帮助用户对数据进行分析和展示。
MATLAB教程课后实验报告题目及解答[第一至第五章]
![MATLAB教程课后实验报告题目及解答[第一至第五章]](https://img.taocdn.com/s3/m/512b4436f111f18583d05a96.png)
MATLAB教程实验报告实验项目名称实验一 Matlab基本操作学生姓名汪德旺专业班级 09数教(1)班学号 0301090131实验成绩日期一. 实验目的和要求1、了解MATLAB 的开发环境。
2、熟悉Matlab的基本操作。
3、掌握建立矩阵的方法。
4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。
5、填写实验报告,实验报告文件取名为report1.doc。
6、于邮件附件形式将实验报告文件report1.doc 发到邮箱*******************,邮件主题为班级学号姓名,如:09数教1班15号张三。
二、实验内容1、先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)2212 1ln(0.4552i z x x+⎡⎤==⎢⎥-⎣⎦其中(3)0.30.330.3sin(0.3)ln,22a ae e az a--+=++a=-3.0,-2.9,-2.8,…, 2.8, 2.9,3.0(4)2242,011,12,0:0.5:2.521,23t tz t tt t t⎧≤<⎪=-≤<=⎨⎪-+≤<⎩其中t2.已知:1234413134787,2033657327 A B--⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1)A+6*B和A-B+I(其中I为单位矩阵) (2)A*B和A.*B(3)A^3和A.^3(4)A/B和B\A(5)[A,B]和[A([1,3],:);B^2]3、设有矩阵A 和B123453016678910A=,B=17-691112131415023-41617181920970212223242541311⎡⎤⎢⎥⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦(1)求它们的乘积C 。
(2)将矩阵C 的右下角3*2子矩阵赋给D 。
(3)查看MATLAB 工作空间的使用情况。
matlab基础 matlab程序设计

自动逐行执行该文件中的各条语句
函数文件基本格式:
function [输出形参列表]=函数名(输入形参列表) 注释说明语句段 程序语句段
end
26
函数内容: (1)第一行帮助行,即H1行
7
5.2.1顺序结构
程序模块1 程序模块2
MATLAB中实现顺序结构的方法非常简单:
只需将程序语句顺序排列即可
8
example.m文件 theta=-pi:0.01:pi; rho(1,:)=2*sin(5*theta).^2; polar(theta,rho(1,:))
执行>>example
%子程序sumhe.m %sumhe(a,b) sum the serial of numbers from a tob function result=sumhe(a,b) result=a+b; end
30
5.4局部变量和全局变量
●如果一个函数内的变量没有特别声明,那么这 个变量只在函数内部使用,即为局部变量。
end
(2) 多分支if语句:超过2个的选择
if表达式1 程序模块1 elseif 表达式2 程序模块2 … elseif 表达式n 程序模块n
else 程序模块n+1
end
12
例:将百分制的学生成绩转换为五级制的成绩输出
clear n=input('输入n= '); if n>=90
r='A' elseif n>=80
46
THANK YOU!
●如果两个或多个函数共用一个变量(或者说在函 数程序中也要用到主程序中的变量,注意不是 参数),那么可以用global来将它声明为全局变 量。
《MATLAB程序设计》
《MATLAB程序设计》MATLAB程序设计MATLAB是一种用于数学计算、科学数据可视化以及算法开发的高级技术计算环境。
它集成了数学、图形、编程和应用工具,可以用来解决许多工程和科学问题。
本文将介绍MATLAB程序设计的基本概念、语法、数据类型、函数编写和调用、以及库函数使用等方面。
一、MATLAB程序设计的基本概念MATLAB程序设计的基本概念包括变量、表达式、语句和函数。
变量是存储数值或字符的内存单元,用于存储程序中的数据。
表达式是由变量、常量、运算符和函数组成的数学表达式。
语句是指MATLAB程序中的行语句,可以包含一个或多个表达式。
函数是一个独立的程序单元,可以接受输入、进行计算,然后返回输出到调用程序。
二、MATLAB程序设计的语法MATLAB程序设计的语法包括变量命名规则、注释、控制流结构和程序文件。
变量命名规则包括变量名称的长度、格式和特殊字符的使用方式等。
注释是指程序中用于解释代码的文本,可以通过使用“%”或“%{”和“%}”进行注释。
控制流结构是指程序中用于控制程序执行流程的结构,包括if、for、while等结构。
程序文件是指包含MATLAB代码的文本文件,以“.m”为后缀名,可以存储程序代码并可以通过调用函数进行执行。
三、MATLAB程序设计的数据类型MATLAB程序设计使用的数据类型包括数值型、字符型、逻辑型、结构体、单元和函数句柄等类型。
数值型数据包括整数、实数和复数等,可以用于数值计算和数据分析。
字符型数据由一个或多个字符组成,可以用于存储文本和字符数据。
逻辑型变量只有两个值:true和false,可以用于布尔运算和逻辑判断。
结构体是一种复合数据类型,可以将不同的数据类型组合成一个整体。
单元是一种可以存储任何类型数据的容器,可以通过花括号来声明和操作。
函数句柄是指将函数作为输入参数传递的方式,可以用于函数的嵌套调用和程序的扩展。
四、MATLAB程序设计的函数编写和调用MATLAB程序设计的函数编写包括函数声明、函数体、输入参数和输出参数等。
MATLAB程序设计教程
MATLAB程序设计教程第一章:MATLAB简介1.1 MATLAB的定义和特点1.2 MATLAB的应用领域1.3 MATLAB的优势和劣势第二章:MATLAB基础知识2.1 MATLAB的安装和启动2.2 MATLAB界面介绍和常用功能2.3 MATLAB的数据类型和变量2.4 MATLAB的基本运算符和表达式2.5 MATLAB的控制流程语句第三章:MATLAB函数与脚本文件3.1 MATLAB函数的定义和调用3.2 MATLAB脚本文件的创建和运行3.3 MATLAB函数和脚本文件的参数传递3.4 MATLAB函数和脚本文件的调试技巧第四章:MATLAB图形绘制4.1 MATLAB图形绘制的基本函数4.2 MATLAB图形绘制的详细参数设置4.3 MATLAB图形的保存和导出第五章:MATLAB矩阵运算5.1 MATLAB中矩阵的创建和索引5.2 MATLAB中矩阵的运算和操作5.3 MATLAB中常用的矩阵函数第六章:MATLAB数值计算6.1 MATLAB中数值计算的基本函数6.2 MATLAB中数值计算的高级功能6.3 MATLAB中数值计算的常见问题和解决方法第七章:MATLAB符号计算7.1 MATLAB中符号计算的基本概念7.2 MATLAB中符号计算的基本函数7.3 MATLAB中符号计算的应用领域第八章:MATLAB应用案例8.1 MATLAB在工程学科中的应用案例8.2 MATLAB在科学研究中的应用案例8.3 MATLAB在数据分析中的应用案例第九章:MATLAB拓展与应用9.1 MATLAB与其他编程语言的结合9.2 MATLAB的工具箱和函数库9.3 MATLAB的二次开发和应用扩展结语:MATLAB作为一种强大的科学计算软件,具备广泛的应用领域和丰富的功能模块,通过本教程的学习,读者可以系统地掌握MATLAB的基本知识和应用技巧,并能够利用MATLAB解决实际问题。
MATLAB程序设计实验1
测试数据:
b3= linspace(0,10,5)
4)定数对数采样的方法(logspace(a,b,n)):
n为数组的总个数,a为第一个元素,b为数组的最后一个元素。经过常用对数采样生成一维数组。
测试数据:
b4=logspace(-1,1,4)
[px,py] = gradient(z,.2,.2);
contour(v,v,z), hold on, quiver(v,v,px,py), hold off
4)fminbnd、fminsearch、fminunc极值
x1 = 0;
x2 =2*pi;
[x,y] = fminbnd(@func,x1,x2)
a5=tril(a)
a6=triu(a,1)
5.字符串数组的创建和操作实验
1)字符串的创建
a.直接输入的方法创建字符串数组
在直接创建数组的时候,可以直接用单引号将字符串括起来作为一个字符串数组,字符窗中如果有单引号,可以利用转义的方法,在单引号前面在加一个单引号。一个字符串的数组还可以由其他的字符串数组拼接而成。
e./f
11)克罗内克张量积
kron(a,b)表示利用a的每一个元素和b矩阵相乘,乘后分别作为结果矩阵的一块.
a=[1,2,3;4,5,6];
b=[1,0,0;0,1,0;0,0,1];
kron(a,b)
kron(b,a)
12)逻辑与&
当数组中的元素数字不为0,均表示逻辑1。
a=[1,2,3];
b=[3,4,5];
a.cat函数
cat函数用于连接数组,标准形式为c=cat(dim,A1,A2,A3,…)其中,dim表示传见数组的维数,A1,A2,A3表示各个维度上的数组。
实验4答案 Matlab程序设计1
实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。
实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),10);a4 = rem(a,10);a1 = rem(a1+7,10)a2 = rem(a2+7,10)a3 = rem(a3+7,10)a4 = rem(a4+7,10)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。
,x x x x y x x x x x x x ⎧+- <≠-⎪=-+ ≤<≠≠⎨⎪-- ⎩2226035605231且且及其他用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。
x = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和swich语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.
2. 3.
例5-7
>>a=[1 3 5]; >>b=[1 2 3]; >>try c=a.*b' catch c=a.*b; end
>> c c= 1 6 15
>> [lastmsg,lastid]=lasterr lastmsg = Error using ==> times Matrix dimensions must agree. lastid = MATLAB:dimagree
练习
Matlab计算与仿真
5.2 M文件
1. M文件
用MATLAB语言编写的程序,称为M文件。
M文件有两种形式 : 脚本文件(Script File) 函数文件(Function File )
这两种文件的扩展名,均为“ . m” 。
脚本文件和函数文件
5.2.1、 M脚本文件(Script File) —— 实际上是一串MATLAB指令集合。
prime number is one that has no factors other than 1 and itself.
练习
5.2.2 M函数文件(Function File )
与脚本文件不同 ,函数文件犹如一个“黑箱”,把一些
数据送进并经加工处理,再把结果送出来。
MATLAB提供的函数指令大部分都是由函数文件定义的
3. break和continue语句——控制循环 的流程。
(1)break语句 break语句使包含break的最内层for或while循环 强制终止,并立即跳出该循环结构,执行end后面 的命令,break一般与if语句结合使用。
(2)continue语句 continue语句与break不同的是continue只结束 本次for或while循环,而继续进行下次循环, continue一般也与if语句结合使用。
例如 inv, abs和 sqrt Y=abs(X)
用户可以根据需要编辑自己的m函数,它们可以像库函 数一样方便的调用,从而极大地扩展了matlab 的能力。 可以输入参数,也可返回输出参数
5.2.2 M函数文件
1. 函数声明行 函数声明行是在M函数文件的第一行,只有M函 数文件必须有,以“function”引导并指定函数 名、输入和输出参数,M脚本文件没有函数声明 行。 2. H1行 H1行是帮助文字的第一行。 3. 帮助文本 4. 程序代码 程序代码由MATLAB语句和注释语句构成。
对于比较简单的问题 ,在命令窗口中直接输入指令 。 对于复杂计算,采用脚本文件(Script file)最为合适 。 MATLAB只是按文件所写的指令执行。
与在命令窗口逐行执行文件中的所有指令,其结果是一 样的。
没有输入参数,也不返回输出参数。
例5-8 在M文件编辑/调试器窗口中编写M脚本 文件得出10 ~ 50范围内的所有素数。
5.1.2 循环结构
实现循环结构的语句:for语句和while语句。
1. for语句:
格式: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end
注:其中表达式1的值为循环变量的初值, 表达式2的值为步长,步长为1时,可省略。 表达式3的值为循环变量的终值。
例:for语句构成的程序段 x(1)=1; for n = 2:6 x(n) = 2 * x(n - 1); end
str='The result is 100.'; len=length(str); s=[ ]; for n=1:len if str(n)>'9' | str(n)<'0' continue end s=[s str(n)] end
%非数值时
s= 1 s= 10 s= 100
【例5-5】 计算f(x)=ex,使用break 语句当f(x)>1000时终止计算。
x=0:10; for n=x f=exp(n); if f>1000 break end end
n= 7 f= 1.0966e+003
例5-6 使用for循环将字符串中的数值 取出,遇到非数值则跳过。
x= 1 2 4 8 16 32
例:利用for循环求1!+2!+3!+ +5!的值 sum=0; for i=1:5 sum=sum+prod(1:i); end sum
例:求向量x的各元素的平方和
x = input (‘x=’); s=0; for i=1:length(x) s=s+x(i)^2; end s
pause函数:暂停程序的执行。
调用格式: pause(延迟秒数) 注:如果省略延迟时间,直接使用pause,则将 暂停程序,直到用户按任一键后程序继续执行。 disp函数:命令窗口输出函数。 调用格式: disp(输出项) 注:输出项为字符串或矩阵。 例如:A='Hello,MATLAB'; disp(A) 输出为: Hello,MATLAB
x=eye(5); for n=1:length(x) x(n,:)=x(n,:)*n end
2. while循环——常用于预先知道循环条
件或循环结束条件的情况。
while 条件表达式 循环体 end 例5-4 使用while循环计算f(x)=sin(x),x<5且每 次x递增ln(x)。 x=0.1; f= -4.0651e+002 -1.5921e+003i while x<5 x= f=sin(x) 5.5640 + 9.2717i x=x+log(x) end
0 0 0 x =1 0 0 0 0 … x= 1 0 0 0 0 0 0 0 0 2 0 0 0 0 2 0 0 0 1 0 0 0 0 1 0 0 0 0 3 0 0 0 1 0 0 0 0 1 0 0 0 0 4 0 0 0 1 0 0 0 0 1 0 0 0 0 5
or:
-5
-
-30 -5
-4
-3
-2
-1
0
1
2
3
4
5
5.1.4. switch 结构——
常用于各种条件的列举。
switch 表达式 case 值1 语句段1 case 值2 语句段2 ... otherwise 语句段n end
说明: (1)表达式只能是标量或字符串; (2) case后面的值可以是标量、字符 串或元胞数组; (3) switch和end必须配对使用。
Matlab计算与仿真 s = 0; 试比较: for p=1:5 s = 0; if (p == 4) break; for p=1:5 end; s = 0; for p=1:5 if (p == 4) s =continue; 0; end; for p=1:5
if (p == 4) s= break; s + p; end;end; s
【例】 求一元二次方程a2 +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)] 将该程序以aa.m文件存盘,然后运行aa.m文件。
%取十位数
s= 优
5.1.5 错误控制语句——
当程序可能出现运行错误时,可以使用错误控制结 构来捕获和处理错误,避免程序出错而不能继续运行。 try 语句段1 catch 语句段2 end 执行过程: 先试探地执行语句段1,如果出现错误则将错误信息赋 给保留的lasterr变量,并放弃语句段1转而执行语句段 2中的语句;如果语句段2正确则结束; 当语句段1和语句段2都错误,则程序出错。 如果语句段1正确则不执行语句段2就结束;
例5.4 使用switch结构判断学生成绩的等级, 90分以上为优,80~90为良,70~80为中, 60~70为及格,60分以下为不及格。
score=98; s1=fix(score/10); switch s1 case {9,10} s='优' case 8 s='良' case 7 s='中' case 6 s='及格' otherwise s='不及格' end
for n=1:5 %循环5次 for n= -1:0.1:1 %循环21次 for n=linspace(-2*pi,2*pi,5) 5 %循环5次 len = x=1 0 0 0 0 a=eye(2,3); for n=a %循环3次,n为列向量 0 1 0 0 0 例5-3 x=eye(5); len=length(x) for n=1:len x(n,n)=n end
if = s == 4) (p + p; s continue; end; s end;
运行结果为 11
运行结果为 s = s + p; 6 end; s
s = s + p; end; s
5.1.2 分支控制语句——
实现满足一定条件就执行相应分支的功能。
1. if 结构
a=[1 3 5]; keyboard try c=a.*b'; catch c=a.*b; end c