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)。
清华大学出版社
第2章 基本使用方法
教学目标 教学重点 教学内容
2016年12月15日
第1页
教学目标
掌握利用MATLAB R2010a的命令窗口进 行简单的数学运算 掌握常用的操作命令和快捷键 了解MATLAB R2010a的数据类型 了解MATLAB R2010a的操作符 了解MATLAB R2010a的基本数学函数 了解MATLAB R2010a脚本编程
2016年12月15日
第18页
浮点数(1/2)
MATLAB 的默认数据类型是双精度类型 (double)。为了节省存储空间, MATLAB 也支持单精度数据类型的数组。 单精度和双精度数据类型的取值范围和精 度可以通过例 2-12 的方式进行查看
2016年12月15日
第19页
浮点数(2/2)
/ ./ \ .\ ^ .^ ' .' 右除 数组右除 左除 数组左除 乘方 数组乘方 矩阵共轭转置 矩阵转置 3^5= 243 3\5= 1.6667 3/5 =0.6000
2016年12月15日
第8页
简单的数学运算(5/6)
标点符号 定义 标点符号 定义 标点符号的使用 在 MATLAB 中,标点符号有着充分的意义, 数组行分隔符;取消运行 分号(;) 点(.) 小数点;结构体成员访问 显示 可以用标点符号进行运算,或者标点符号可 数组列分隔符;函数参数 逗号(,) 省略号(…) 续行符 分隔符 以包含特定的意义。
8 7 7
uint16 int16 uint32 int32 uint64 int64
16位无符号整数,范围为0~65535(即0~216-1) 16位有符号整数,范围为-32768~32767(即-215~215-1) 32位无符号整数,范围为0~4294967295(即0~232-1) 32位有符号整数,范围为-2147483648~2147483647(即-231~231-1) 64位无符号整数,范围为0~18446744073709551615(即0~264-1) 64位有符号整数,范围为-9223372036854775808~9223372036854775807(即263~263-1) 第15页
2016年12月15日
第22页
逻辑变量(1/5)
逻辑数据类型通过 1 和 0 分别表示逻辑真 和逻辑假。一些 MATLAB 函数或操作符会 返回逻辑真或逻辑假表示条件是否满足。 如表达式 (5 * 10) > 40 返回逻辑真。 在 MATLAB 中,存在逻辑数组,如下面的 表达式返回逻辑数组:
例 2-12 单精度和双精度数据类型的取值范围和精度
>> realmin('single') ans = 1.1755e-038 >> realmax('single') ans = 3.4028e+038 >> eps('single') ans = 1.1921e-007 >> realmin('double') ans = 2.2251e-308 >> realmax('double') ans = 1.7977e+308 >> eps('double') ans = 2.2204e-016
函数 中返回逻辑 MATLAB 值的函数和操作符 true, false logical & (and), | (or), ~ (not), xor, any, all &&, || == (eq), ~= (ne), < (lt), > (gt), <= (le), >= (ge) 说明
将输入参数转化为逻辑值
2016年12月15日
第17页
整数运算(2/2)
由于每种整数数据类型都有相应的取值范围,因此数学运算有可能产 生结果溢出。MATLAB 利用饱和处理处理此类问题,即当运算结果 超出了此类数据类型的上限或下限时,系统将结果设置为该上限或下 限。
结果溢出上 例 2-10 整数运算中的数据溢出 >> x=int8(100); 限,因此结 >> y=int8(90); 果为127 3*y溢出上限,结 >> z=x+y 果为127,继续计 z= 127 算,得到最后结果 计算-27 x-y-y-y时,从左 >> x-3*y ans = 到右进行计算,结果 -27 溢出下限,因此结果 >> x-y-y-y 为-128 ans = -128
2016年12月15日
第4页
简单的数学运算(1/6)
最简单的计算器使用法
直接输入法 存储变量法
2016年12月15日
第5页
简单的数学运算(2/6)
表达式书写规则
在大多数情况下,MATLAB 对空格不予处理,因此在
书写表达式时,可以利用空格调整表达式的格式,使 表达式更易于阅读。 在 MATLAB 表达式中,遵守四则运算法则,与通常法 则相同。即运算从左到右进行,乘法和除法优先于加 减法,指数运算优先于乘除法,括号的运算级别最高; 在有多重括号存在的情况下,从括号的最里边向最外 边逐渐扩展。 需要注意的是,在 MATLAB 中只用小括号代表运算级 别,中括号只用于生成向量和矩阵,花括号用于生成 单元数组。
将数值转化为逻辑值 逻辑操作符 “并”和“或”的简写方式 关系操作符
所有的 is* 类型的函数,cellfun
strcmp, strncmp, strcmpi, strncmpi
判断函数
字符串比较
2016年12月15日
第25页
逻辑变量(4/5)
逻辑数组的应用
用于条件表达式
如果仅当条件成立时执行某段代码,可以应用 逻辑数组进行判断和控制 用于数组索引 在 MATLAB 中支持通过一个数组对另一个数 组进行索
2016年12月15日
第21页
复数
complex 函数的调用方法如下。
c = complex(a,b),返回结果 c 为复数,其实部为 a,
虚部为 b。输入参数 a 和 b 可以为标量,或者维数、 大小相同的向量、矩阵或者多维数组,输出参数和 a 和 b 的结构相同。a 和 b 可以有不同的数据类型,当 a 和 b 为各种不同的类型时,返回值分别为:
2016年12月15日 第2页
教学重点
掌握利用MATLAB R2010a的命令窗口进 行简单的数学运算 掌握常用的操作命令和快捷键 了解MATLAB R2010a的数据类型 了解MATLAB R2010a的操作符
2016年12月15日
第3页
教学内容
简单的数学运算 常用的操作命令和快捷键 MATLAB R2010a 的数据类型 MATLAB R2010a 的运算符 MATLAB的一些基础函数 MATLAB脚本文件
创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。单精度数据类型的数据进行 运算时,返回值为单精度。
2016年12月15日
第20页
复数
复数由两个部分组成:实部和虚部。基本 虚数单位等于,在 MATLAB 中虚数单位由 i 或者 j 表示。 MATLAB 中可以通过两种方法创建复数, 第一种方法为直接输入法,另一种创建复 数的方法为通过 complex 函数。
2016年12月15日
MATLAB R2010a 的数据类型
整数 浮点数 复数 逻辑变量 各种数据类型之间的转换 数据类型操作函数 变量 系统预定义的特殊变量
第14页
2016年12月15日
整数
MATLAB 支持8位、16位、32位和64位的有符号 数据类型 描述 和无符号整数数据类型。 uint8 8位无符号整数,范围为0~255(即0~2 -1) 上述整数数据类型除了定义范围不同外,具有相 int8 8位有符号整数,范围为-128~127(即-2 ~2 -1) 同的性质。
图形保持命令
加载指定文件中的变量 整理内存碎片 显示搜索目录 退出 MATLAB 保存内存变量 显示文件内容
显示变量或文字的内 6年12月15日
第12页
常用的操作命令和快捷键(3/3)
常用的操作快捷键
快捷键 功能 ↑(Ctrl + p) ↓(Ctrl + n) ←(Ctrl + b) 调用上一行 调用下一行 光标左移一个字符 快捷键 Home(ctrl+a) End(ctrl+e) Ctrl + Home 功能 移动到命令行开头 移动到命令行结尾 移动到命令窗口顶部
分号(;) 分号用于区分数组的行,或者用于一个语 句的结尾处,取消运行显示。 百分号(%) 该符号用于在程序文本中添加注释,增加 程序的可读性。百分号之后的文本都将视 作注释,系统不对其进行编译。
2016年12月15日
第10页
常用的操作命令和快捷键(1/3)
为方便用户操作,MATLAB 中定义了一些 快捷键。掌握一些常用的操作命令和快捷 键,可以使得对 MATLAB 的操作更加便利。
冒号(:) 圆括号(( )) 方括号([ ]) 花括号({ }) 在数组中应用较多,如生 成等差数列 指定运算优先级;函数参 数调用;数组索引 定义矩阵 引号(‘’) 定义字符串
等号(=) 感叹号(!) 百分号(%)
赋值语句
调用操作系统运算
定义单元数组
注释语句的标识
2016年12月15日
第9页
简单的数学运算(6/6)
2016年12月15日
第6页
简单的数学运算(3/6)