MATLAB R2010a 基础教程基本使用方法
Matlab分支语句和编程设计分析

2018年10月21日
第7页
MATLAB R2010a基础教程
清华大学出版社
3.设计你的程序得以实现的算法
算法是指为某个问题找到答案一步接一步的程序。在这个阶段自上而 下的编程方法发挥了作用。编程设计者开始对这个问题进行逻辑划分 ,把它逐步分解为一个又一个子工作。这个过程叫做分解 (decomposition)。如果一些子工作还是比较大,设计者还可以把他 它分解成更小的块。这个过程将会继续到问题被分解成许多简单且易 理解的小块为止。 在问题被分解成小块之后,每一个小块要被进一步的求精,这个过程 叫做逐步求精(stepwise refinement)。在这个过程中,设计者开始 于对本小块代码总括性的描述,然后开始一步一步地定义所需的函数 ,越来越具体,直到他能够转化为MATLAB语句。逐步求精的过程 中,我们要用到的伪代码将会在下节为大家介绍。 在算法开发过程中,这个方法是非常有用的。如果设计者真正理解了 解决问题这个些步骤,他将会对问题进行分解和逐步求精。
2018年10月21日
第15页
2018年10月21日
MATLAB R2010a基础教程
清华大学出版社
例(温度转换)设计一个MATLAB程序,读取一个华氏 温度的输入,输出开尔文温度。
华氏温度和开尔文温度的转换关系式可在物理学课本中找 到。其关系式为:
5 T (开尔文) T (摄氏度) 32.0 273.15 9
第11页
2018年10月21日
MATLAB R2010a基础教程 大程序典型地调试过程
开始
清华大学出版社
独立子程序的单元检测 分别使每一个子程序生效 一系列的组合(把一些 子程序添加到程序中) 次数根据需要而定
第二章_MATLAB的基本使用方法

MATLAB提供的基本初等函数包括三角函数、指 数函数、对数函数、复数函数、取整和求余函数、 坐标变换函数、数理函数和一些特殊函数。 教材P14-16 MATLAB中使用函数不需要先对函数声明
2014-9-25
6
例2-3:已知三角形三个边长度分别为1、2、 3 ,求长度为 1和2的两条边的夹角大小。
.*
/ ./ \
乘,点乘,即数组乘法
右除 数组右除 左除 a\b=b/a。
.\
^ .^ ' .'
2014-9-25
数组左除
乘方 数组乘方 矩阵共轭转置 矩阵转置
9
例:矩阵乘法和点乘 >> a=[1 2;3 4]; >> b=[2 3;1 1]; >> c=a*b c= 4 5 10 13 >> d=a.*b d= 2 6 3 4
MATLAB默认的 数据类型
2014-9-25
20
整数的运算
>> y=uint8(15) y= 15 >> x=uint8(30) x =当运算结果溢出时,系统 将结果设置为该数据类型 30 的上限或者下限 >> x+y ans = 45 >> x*y ans = 255
>> x/y ans = 2 >> y\x ans = 2 >> x\y ans = 1
赋值语句 调用操作系统运算
用作输入量与输入量之间 的分隔符;数组元素分割 符
定义单元数组
放在函数名前,形 成函数句柄;匿名 函数前导符
注释语句的标识
11
1:分号(;) 功能:用于区分数组的行,或者用于一个语句的结尾处,取消运行行 显示。 2:百分号(%) 功能:用于在程序文本中添加注释,提高程序的可读性。百分号之后 的文本都将视为注释,系统不对其进行编译。 >> c=ones(2,3); >> c=ones(2,3) %create a 2*3 matrix of ones. c= 1 1 1 1 1 1
MATLAB R2010a 基础教程_05字符串、单元数组和结构体

清华大学出版社
字符串的生成(2/2)
字符串是一个 ASCII 码的字符数组,因此, 与普通数组一样,字符串也可以形成矩阵 (表现为一个字符串有多行)。但是,这 些行必须有相同数目的列数。 另外,使用 char 函数可以创建长度不一致 的字符串矩阵。char 函数自动将所有字符 串的长度设置为输入字符串中长度的最大 值。
清华大学出版社
字符串的运算
函数名 函数用途 字符串的运算主要包括: 函数名 函数用途
1. 2. 3. 4.
strcat strvcat 横向连接字符串 纵向连接字符串 判断字符串是否相等 比较字符串的前n 个 通过字符串运算来比较字符串中的字符 strcmp strncmp 字符串比较 字符 进行字符分类、查找与替换 findstr strjust 字符串查找 字符串对齐 字符串与数值数组之间的相互转换 strmatch strtok deblank 字符串匹配 strrep 字符串查找与替换 选择字符串中的部分 删除字符串结尾的空 格 blanks ischar 创建由空格组成的字 符串 判断变量是否为字符 串
2016年2月10日
第9页
MATLAB R2010a 基础教程
清华大学出版社
字符串的比较(2/3)
除了利用上面两个函数进行比较之外,还可以通 符号 符号意义 英文简写 过简单运算比较两个字符串。当两个字符串拥有 == eq 等于 相同的维数时,可以利用 MATLAB 运算法则, 对字符数组进行比较。字符数组的比较与数值数 ~= ne 不等于 组的比较基本相同,不同之处在于字符数组比较 lt 小于 时进行比较的是字符的 <ASCII 码值。进行比较返 回的结果为一个数值向量,元素为对应字符比较 > gt 大于 的结果。需要注意的是在利用这些运算比较字符 <= le 小于等于 串时,相互比较的两个字符串必须有相同数目的 元素。
matlab2010a 教程2

第 2 章符号计算2.1符号对象和符号表达式2.1.1符号对象的创建和衍生1生成符号对象的基本规则2符号数字和符号常数【例2.1-1】a=pi+sqrt(5)sa=sym('pi+sqrt(5)')Ca=class(a)Csa=class(sa)vpa(sa-a)a =5.3777sa =pi + 5^(1/2)Ca =doubleCsa =symans =0.0000000000000000138223758410852000485935425641883基本符号变量4自由符号变量【例2.1-2】。
(1)syms u v w z a5f=sym('3');Eq=sin(f)*u*z^2+v*z+f*w-a5;(2)symvar(Eq)ans =[ a5, u, v, w, z]symvar(Eq,100)ans =[ w, z, v, u, a5]symvar(Eq,1)ans =w(3)result_1=solve(Eq)result_1 =a5/3 - (v*z)/3 - (u*sin(3)*z^2)/3(4)result_2=solve(Eq,z)result_2 =-(v - (v^2 + 4*a5*u*sin(3) - 12*u*w*sin(3))^(1/2))/(2*u*sin(3)) -(v + (v^2 + 4*a5*u*sin(3) - 12*u*w*sin(3))^(1/2))/(2*u*sin(3))【例2.1-3】(1)syms a b x X Yk=sym('3');z=sym('c*sqrt(d)+y*sin(t)');EXPR=a*z*X+(b*x^2+k)*Y;(2)symvar(EXPR)ans =[ X, Y, a, b, c, d, t, x, y](3)symvar(EXPR,10)ans =[ x, y, t, d, c, b, a, X, Y](4)symvar(EXPR,1)ans =x(5)symvar(EXPR,3)ans =[ x, y, t](6)E3=sym('a*sqrt(theta)')??? Error using ==> sym.sym>sym.sym/scalarsym at 382Error: argument must be of 'Type::Arithmetical' [sqrt]Error in ==> sym.sym>sym.sym/char2sym at 337Scell = scalarsym(x);Error in ==> sym.sym>sym.sym/symchar at 182Scell = char2sym(x);Error in ==> sym.sym>sym.sym at 120S = cell2sym(S,symchar(x,a,nargin));E4=sym('a*sqrt(theta123)')E4 =a*theta123^(1/2)E5=sym('a*sqrt(theta*t)')E5 =a*(t*theta)^(1/2)【例2.1-4】syms a b t u v x yA=[a+b*x,sin(t)+u;x*exp(-t),log(y)+v] symvar(A,1)A =[ a + b*x, u + sin(t)][ x/exp(t), v + log(y)]ans =x2.1.2符号计算中的算符2.1.3符号计算中的函数指令2.1.4符号对象的识别【例2.1-5】。
MATLAB R2010a 基础教程_06MATLAB 编程

2016年2月10日
第21页
MATLAB R2010a 基础教程
清华大学出版社
logical函数
用户可以使用关系和逻辑运算符以及 logical函数创建逻辑数组。logical函数返 回一个可以用于逻辑索引和逻辑测试的数 组。
2016年2月10日
第22页
MATLAB R2010a 基础教程
清华大学出版社
2016年2月10日 第15页
MATLAB R2010a 基础教程
清华大学出版社
自顶向下的设计和程序文档(1/2)
(1)简明地陈述问题 (2)指定程序所使用的数据。这就是“输入” (3)指定程序所产生的信息。这就是“输出” (4)通过手算或者计算器完成解决方案的步骤。如果需 要的话,可以使用一个较简单的数据集 (5) 编写和运行程序 (6)用手算结果检验程序的输出 (7)用输入数据运行程序,并且对输出进行一个真实性 检验 (8)如果用户在将来使用该程序作为一个通用工具,那 么,用户必须通过用一组合理的数据值来运行它以进行测 试;并对结果进行一个真实性检验
创建和使用脚本文件 有效使用脚本文件 有效使用命令窗口和编辑器/调试器窗口 调试脚本文件 编程风格 记录度量单位 使用脚本文件存储数据 控制输入和输出 用户输入 脚本文件示例
2016年2月10日
第6页
MATLAB R2010a 基础教程
清华大学出版社
创建和使用脚本文件
创建新的M-文件,只需在命令窗口的File菜 单中选中New菜单项,然后选中M-文件。在之后 出现的编辑器/调试器窗口中输入文件,用键盘和 编辑器/调试器的Edit菜单创建和编辑文件。完成 后,从编辑器/调试器的File菜单中选中Save菜单 项。在出现的对话框中,用example1替换系统所 提供的默认名称,并单击Save菜单项。编辑器/调 试器将自动提供扩展名.m,并将文件保存在 MATLAB当前目录中。保存了文件之后,用户就 可以在MATLAB命令窗口中输入脚本文件名 example1以执行程序。用户应该会看到命令窗口 中所显示的结果。
2010-1matlab基本操作

先看两个例子
hold on % 图形迭加 axis([0,100,2,3]); % 设置坐标轴 grid % 加坐标网格 for n=1:90 % 循环操作 an=(1+1/n)^n; % 计算数列值 plot(n,an,'r*'); % 画出坐标点 pause(0.05); % 暂停0.05秒 fprintf('n=%d e=%.8f\n',n,an); % 显示坐标位置 end
MATLAB中数组、矩阵基本运算符
运算 加法: a+b 意义 两矩阵相加,数与矩阵相加
减法: a-b
乘法: a*b a.*b 除法: a/b (a\b) 幂 a^n a.^n
两矩阵相减,数与矩阵相加
两矩阵相乘,数与矩阵相乘 两矩阵对应元素相乘 a*inv(b) (inv(a)*b) 矩阵的幂 矩阵的每个元素的幂
syms a b c x %定义符号变量 f=sym('a*x^2+b*x+c') nf=int(f) %对f求不定积分,默认变量为x djf=int(f,x,0,2) %f在(0,2)上求定积分 jf=int(f,a) %f求不定积分,变量为a bjf=int(int(f,a),x) %f对a不定积分后再对x求不 定积分
M-文件,存盘(Save)、运行(Run)等.
MATLAB语言编程介绍
• MATLAB中各种命令可以完成许多单一的任务,对于 某些较为复杂的问题,仅靠现有的命令或函数来解 决,往往是难以达到目的 。为此,要运用MATLAB 编程语言编制程序,形成M-文件。 • 程序是使计算机完成各项运算的命令集,运行一个 编制好的程序,计算机会从第一条命令行开始,一 行接一行地执行相应的命令,直到终止。 • 程序编写调试完成后,需要存盘,形成永久性文件 ,可以随时对它进行调用或修改。 • 文件名以字母开头,但不能用专用变量名,如 pi,ans,eps等。
matlab基本使用方法ppt课件

ppt课件.
31
例:
floor(2/3) round(2/3) floor(1./[1 2 3]) ceil(1/2) fix(1/3) floor(-1/3) mod(-2,-3) mod(2,-3) rem(2,-3)
ppt课件.
32
2.1.2 Matlab的数学运算符
运算操作符
符号(矩阵)
例:
logspace(0,2,3) logspace(1,2)
ppt课件.
18
3 由函数生成特殊矩阵
zeros(m,n): 产生m*n的全0矩阵; ones(m,n): 产生m*n的全1矩阵; rand(m,n): 产生均匀分布随机矩阵,元素
取值范围为0-1; randn(m,n): 产生正态分布的随机矩阵; magic(n): 产生n阶魔方矩阵; eye(m,n): 产生m*n的单位矩阵; diag(m): 产生以m向量为对角元素的对角阵
矩阵输入的方法
1. 直接输入矩阵。 2. 通过语句生成矩阵。 3. 由矩阵生成函数产生特殊矩阵。 4. 用户自己编写M文件产生矩阵。 5. 通过导入外部数据文件生成矩阵。
1 直接输入矩阵
(1) 矩阵中元素应用方括号括住。 (2) 每行内的元素间用逗号或空格隔开; (3) 行与行之间用分号或回车键隔开。 (4) 元素可以是数值或表达式。
ppt课件.
45
逻辑运算
Matlab的逻辑操作符主要有:
指令
含义
指令
含义
& (and) 与、和
| (or)
或
~ (not)
否、非
xor(a, b) (异或逻辑函数)
a,b对应元素同为0 或非0时,为0, 否则为1
MATLAB R2010a 基础教程_09句柄图形

2016年2月10日
第7页
MATLAB R2010a 基础教程
清华大学出版社
Core 对象
对象 Core
功能 对象包括基本的绘图单元,包括线条、文 axes Axes 对象定义显示图形的坐标系,Axes对象包含于图形中 本、多边形及一些特殊对象,如表面图,表面图 图形对象为一个数据矩阵,矩阵数据对应于颜色。当矩阵为二维 image 中包括矩形方格、图像和光照对象,光照对象不 时表示灰度图像,三维时表示彩色图像 可视,但是会影响一些对象的色彩方案。 light 坐标系中的光源。Light 对象影响图像的色彩,但是本身不可视 MATLAB 中的核心对象(Core)如表所示。 line 通过连接定义曲线的点生成 patch rectangle surface text
第6页
2016年2月10日
MATLAB R2010a 基础教程
清华大学出版社
Figure 对象
பைடு நூலகம்
Figure 是 MATLAB 显示图形的窗口,其中包含菜单栏、 工具栏、用户接口对象、右键菜单、坐标系及坐标系的子 对象等。MATLAB 允许用户同时创建多个图形窗口。 如果当前尚未创建图形对象(即 Figure 窗口),则调用 任意一个绘图函数或图像显示函数(如 plot 函数和 imshow 函数等)均可以自动创建一个图形窗口。如果当 前根对象已经包含了一个或多个图形窗口,则总有一个窗 口为“当前”窗口,且该窗口为所有当前绘图函数的输出 窗口。
2016年2月10日
第4页
MATLAB R2010a 基础教程
清华大学出版社
MATLAB 的图形对象
图形对象是 MATLAB 显示数据的基本绘图 元素,每个对象拥有一个唯一的标志,即 句柄。通过句柄可以对已有的图形对象进 行操作,控制其属性。 MATLAB 中这些对象的组织形式为层次结 构,如图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uint8
8位无符号整数,范围为0~255(即0~28-1)
▪ 上述整数数据类型除了定义范围不同外,具有相
同的性质。 int8
8位有符号整数,范围为-128~127(即-27~27-1)
uint16
16位无符号整数,范围为0~65535(即0~216-1)
int16
16位有符号整数,范围为-32768~32767(即-215~215-1)
▪ 在 MATLAB 中,存在逻辑数组,如下面的 表达式返回逻辑数组:
>> [30 40 50 60 70] > 40 ans =
00111
2020年4月10日
第23页
逻辑变量(2/5)
▪ 逻辑数组的创建
➢ 创建逻辑数组的最简单的方法为直接输入元素 的值为 true 或者 false
➢ 逻辑数组也可以通过逻辑表达式生成
整数类型,或者为双精度型,返回结果 c 为相同的整数类型。
➢ c = complex(a),只有一个输入参数,返回结果 c 为复 数,其实部为 a,虚部为 0。但是此时 c 的数据类型 为复数。
2020年4月10日
第22页
逻辑变量(1/5)
▪ 逻辑数据类型通过 1 和 0 分别表示逻辑真 和逻辑假。一些 MATLAB 函数或操作符会 返回逻辑真或逻辑假表示条件是否满足。 如表达式 (5 * 10) > 40 返回逻辑真。
2020年4月10日
第4页
简单的数学运算(1/6)
▪ 最简单的计算器使用法
➢ 直接输入法 ➢ 存储变量法
2020年4月10日
第5页
简单的数学运算(2/6)
▪ 表达式书写规则
➢ 在大多数情况下,MATLAB 对空格不予处理,因此在 书写表达式时,可以利用空格调整表达式的格式,使 表达式更易于阅读。
2020年4月10日
第24页
逻辑变量(3/5)
▪ MATLA函B数 中返回逻辑 值的函数和操作符
true, false
说明 将输入参数转化为逻辑值
logical
将数值转化为逻辑值
& (and), | (or), ~ (not), xor, any, all
逻辑操作符
&&, ||
== (eq), ~= (ne), < (lt), > (gt), <= (le), >= (ge)
2.2251e-308 >> realmax('double') ans =
1.7977e+308 >> eps('double') ans =
2.2204e-016
▪ 创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。单精度数据类型的数据进行 运算时,返回值为单精度。
2020年4月10日
数组列分隔符;函数参数 分隔符
省略号(…)
续行符
冒号(:)
在数组中应用较多,如生 成等差数列
引号(‘’)
定义字符串
圆括号(( ))
指定运算优先级;函数参 数调用;数组索引
等号(=)
赋值语句
方括号([ ]) 定义矩阵
感叹号(!)
调用操作系统运算
花括号({ }) 定义单元数组
百分号(%) 注释语句的标识
clf
清除图形窗口
path
diary
日志文件命令
quit
dir
显示当前目录下文件 save
disp
显示变量或文字的内 容
type
echo
命令窗口信息显示开 关
2020年4月10日
功能 图形保持命令 加载指定文件中的变量 整理内存碎片 显示搜索目录 退出 MATLAB 保存内存变量 显示文件内容
第12页
所有的 is* 类型的函数,cellfun
“并”和“或”的简写方式 关系操作符 判断函数
strcmp, strncmp, strcmpi, strncmpi
字符串比较
2020年4月10日
第25页
逻辑变量(4/5)
▪ 逻辑数组的应用
➢ 用于条件表达式 如果仅当条件成立时执行某段代码,可以应用 逻辑数组进行判断和控制
2020年4月10日
第15页
定义整数变量
▪ 定义变量:由于 MATLAB 默认的数据类型 为双精度型,因此在定义整形变量时,需 指定变量的数据类型。
2020年4月10日
第16页
整数运算(1/2)
▪ 运算:类型相同的整数之间可以进行运算,返回 相同类型的结果。在进行加、减和乘法运算时比 较简单,在进行除法运算时稍微复杂一些,因为 在多精度情况下,整数的除法不一定能得到整数 的结果。在进行除法时,MATLAB 首先将两个数 视为双精度类型进行运算,然后将结果转化为相 应的整形数据。
第20页
复数
▪ 复数由两个部分组成:实部和虚部。基本 虚数单位等于,在 MATLAB 中虚数单位由 i 或者 j 表示。
▪ MATLAB 中可以通过两种方法创建复数, 第一种方法为直接输入法,另一种创建复 数的方法为通过 complex 函数。
2020年4月10日
第21页
复数
▪ complex 函数的调用方法如下。
符号
功能
实例
▪ 需+要注意的是,右加除法 和左除的意义3+5并=8 不相同。 右-*除为常规的除法减矩,法阵乘法而左除的意义33-*55为==-125 :
a\b.* =b/a。
乘,点乘,即数组乘法
/
右除
3/5 =0.6000
./
数组右除
\
左除
3\5= 1.6667
.\
数组左除
^
乘方
3^5= 243
.^
isa(x, 'logical')
判断数组 x 是否为逻辑数组,是则返回真
class(x)
数组乘方
'
矩阵共轭转置
.'
矩阵转置
2020年4月10日
第8页
简单的数学运算(5/6)
▪ 标点标点符符号号的使定义用
标点符号
定义
可在以M分号用A(T;标)L点AB符数中号组显,行进示分标隔行符点;运取符消算运号行,有点或(着.)者充标分点的小符数意点号;义结可构,体成员访问
以包含特定的意义。 逗号(,)
▪ 为方便用户操作,MATLAB 中定义了一些 快捷键。掌握一些常用的操作命令和快捷 键,可以使得对 MATLAB 的操作更加便利。
2020年4月10日
第11页
常用的操作命令和快捷键(2/3)
▪ 常用命的令 操作命令功能
命令
cd
显示或改变工作目录 hold
clc
清空命令窗口
load
clear
清除工作区中的变量 pack
剪切光标和表达式结尾 之间的内容
第13页
MATLAB R2010a 的数据类型
▪ 整数 ▪ 浮点数 ▪ 复数 ▪ 逻辑变量 ▪ 各种数据类型之间的转换 ▪ 数据类型操作函数 ▪ 变量 ▪ 系统预定义的特殊变量
2020年4月10日
第14页
整数
▪ MATLAB 支持8位、16位、32位和64位的有符号 和数据无类型符号整描述数数据类型。
➢ 用于数组索引 在 MATLAB 中支持通过一个数组对另一个数 组进行索
2020年4月10日
第26页
逻辑变量(5/5)
▪ 逻辑数组的判断
▪ MATLAB 中提供了一组函数用于判断数组是否为 逻辑数组
函数
功能
whos(x)
显示数组 x 的元素值及数据类型
islogical(x)
判断数组 x 是否为逻辑数组,是则返回真
2020年4月10日
第6页
简单的数学运算(3/6)
▪ MATLAB中的常用数学函数
MATLAB提供的基本初等函数包括三角函数、 指数函数和对数函数、复数函数、取整和求余 函数、坐标变换函数、数理函数和一些特殊函 数。
2020年4月10日
第7页
简单的数学运算(4/6)
▪ MATLAB 的数学运算符
2020年4月10日
第9页
简单的数学运算(6/6)
▪ 分号(;) 分号用于区分数组的行,或者用于一个语 句的结尾处,取消运行显示。
▪ 百分号(%) 该符号用于在程序文本中添加注释,增加 程序的可读性。百分号之后的文本都将视 作注释,系统不对其进行编译。
2020年4月10日
第10页
常用的操作命令和快捷键(1/3)
➢ 在 MATLAB 表达式中,遵守四则运算法则,与通常法 则相同。即运算从左到右进行,乘法和除法优先于加 减法,指数运算优先于乘除法,括号的运算级别最高; 在有多重括号存在的情况下,从括号的最里边向最外 边逐渐扩展。
➢ 需要注意的是,在 MATLAB 中只用小括号代表运算级 别,中括号只用于生成向量和矩阵,花括号用于生成 单元数组。
▪ MATLAB 中不允许进行不同整数类型之间的运算。
2020年4月10日
第17页
整数运算(2/2)
▪ 由于每种整数数据类型都有相应的取值范围,因此数学运算有可能产
生结果溢出。MATLAB 利用饱和处理处理此类问题,即当运算结果
超出了此类数据类型的上限或下限时,系统将结果设置为该上限或下
限。
➢ 例 2-10 整数运算结中果的溢数出据上溢出
>> x=int8(100); 限,因此结
>> y=int8(90); 果为127
>> z=x+y 3*y溢出上限,结
; x-3*y ans =