MATLAB第2章
第二章 MATLAB基础

3 )向量是一个数学量,一般高级语言中也未引入, 它可视为矩阵的特例。从MATLAB的工作区可以查 看到:一个 n 维的行向量是一个 1 × n 阶的矩阵,而 一个n维的列向量则当成n×1阶的矩阵。 如A=[1 2 3 4]就是一个4维的行向量。也可看成是 一个一维数组,还要看成是一个1×4阶的矩阵。
3
数据类型转换函 数 uint8 uint16 uint32 uint64 int8 int16 int32 int64
说 明 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数
字节数 1 2 4 8 1 2 4 8
22
【例 2.8】变量赋值 >> a=3.14 a= 3.1400 >> class(a) %函数class用来是判断变量数据类 型的 ans = double %变量a是双精度的浮点型数据
23
>> a='hello!' hello! >> class(a) ans = char
%变量a重新赋值
13
>> whos Name Size a 1x1 x 1x1 y 1x1 z 1x1
Bytes Class Attributes 16 double complex 4 int32 4 int32 8 int32 complex
14
2.2MATLAB的常量及变量
2.2.1常量 常量是程序语句中取不变值的那些量。如表达式 y=0.314*x,其中就包含一个0.314这样的数值常数,它 便是一个数值常量。而在另一表达式s='Hello'中,单引 号内的英文字符串“Hello”则是一个字符串常量。
matlab第2章

2. MATLAB变量的显示
任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值
给指定的变量。没有指定变量பைடு நூலகம்,赋值给默认变量名ans,数据
的显示格式由format命令控制。
Format只影响结果的显示,不影响计算与存储。
MATLAB以双字长浮点数(双精度)执行所有的运算。
22
2.4.1.2 字符串
a在前面未赋值时,非法命令。
19
1. 变量命名规则 (1)变量名区分字母的大小写,A与a表示不同的变量。 (2)变量名必须以英文字母开头,之后可以使用字母、数字、下画线, 但不能使用空格和标点符号。 (3)变量名长度不能超过31个字符,超过部分将被忽略
(4)某些常量也可以作为变量使用。
如 i 在MATLAB中表示虚数单位,但也可以作为变量使用。
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序
(3)Step In:单步调试进入子程序
(4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口
MATLAB 第2章 离散时间信号与系统

(2)移位:将 h(-m)移位 n,即得h(n-m).当 n为正整数时, 右移n位,当n为负整数时,左移n位.
(3) 相乘:再将h(n-m)和x(m)的相同m值的对应点值相乘. (4)相加:把以上所有对应点的乘积叠加起来,即得y(n)值. 依上法,取n=…, -2, -1, 0, 1, 2, …各值,即可得全部y(n)值.
y( 1 ) 0
1 1 y(1 ) 1 2 2
数字信号处理
图1-8 x(n)和h(n)的卷积和图解
第2章离散时间信号与系统
利用图1-8,求任意一个y(n)时,只需将两序 列对应位置上的点相乘再求和即可。
数字信号处理
第2章离散时间信号与系统
二. 常用的典型序列
1.单位采样序列(单位冲激序列,单位脉冲序列) ( n )
x(2n)
3
2 x(2 n)
2
4 2
1 1
0
1
n
0
1
2
3
n
数字信号处理
第2章离散时间信号与系统
2.2 离散时间系统
定义:一个离散时间系统是将输入序列变换成输出
序列的一种运算。
若以T[· ]来表示这种运算,则一个离散时间系统 可表示为:
y ( n ) T [ x ( n )]
离散时间系统中最重要、 最常用的是“线性移
例如 s i n n 4
N 8
/ 0 PQ / (2)当 2 / 0 不是整数,是一个有理数时,设 2
P和Q是互为素数的整数,取k=Q,则N=P; 例如 s i n 数字信号处理
4 5
时, 2 / 0
2 5 4 / 5 2
N 5
第2章离散时间信号与系统
Matlab第2章

程序控制结构
3.break语句和continue语句 break语句用于终止循环的执行。当在循环体内执行到该语 句时,程序将跳出循环,继续执行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。当在循环体内 执行到该语句时,程序将跳过循环体中所有剩下的语句,继 续下一次循环。 【例2.11】输入两个整数,求它们的最小公倍数。 程序如下: x=input('请输入第一个数:'); y=input('请输入第二个数:'); z=max(x,y); while or(rem(z,x)~=0,rem(z,y)~=0) z=z+1; end disp([num2str(x),'和',num2str(y),'的最小公倍数是: ',num2str(z)])
3.try语句 try语句是一种试探性执行语句,为开发人员提供了一种捕获错误的机制,其语 句格式为 try 语句块1 catch 语句块2 end try语句先试探性执行语句块1,如果语句块1在执行过程中出现错误,则将错误 信息赋给保留的lasterr变量,并转去执行语句块2。 【例2.6】矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘 积,若出错,则自动转去求两矩阵的点乘。 A=input('请输入A矩阵:'); B=input('请输入B矩阵:'); lasterr(''); %清除原有的错误信息 try C=A*B; catch C=A.*B; end C disp(lasterr) %显示出错原因
2.2 程序控制结构
3.程序的暂停 当程序运行时,为了查看程序的中间结果或者观看输出的图 形,有时需要暂停程序的执行。这时可以使用pause函数, 其调用格式为 pause(延迟秒数) 如果省略延迟时间,则将暂停程序,直到用户按任一键后程 序继续执行。 若要强行中止程序的运行可使用Ctrl+C组合键。
MATLAB第二章

2 特殊数据判断函数
常用的特殊数据判断函数:
• isinf(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为无穷大inf时设置为1, 否则为0。 • isnan(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为NaN 时设置为1,否 则为0。 • isfinite(A) 返回一个与A同型的数组,该数组元素 的值根据A的相应位置元素的值为有限值时设置为1, 否则为0。
关系运算规则
关系运算符的运算法则为: • 1 当两个比较量是标量时,直接比较两数的大 小。若关系成立,关系表达式结果为1,否则 为0。 • 2 当参与比较的量是两个同型的矩阵时,比较 是对两矩阵相同位置的元素按标量关系运算规 则逐个进行,并给出元素比较结果。最终的关 系运算的结果是一个与原矩阵同型的矩阵,它 的元素由0或1组成。
当a=[pi NaN Inf -Inf]时,分析下列 语句的执行结果
• isinf (a) • isnan (a) • isfinite (a)
例 当A=[-6,NaN,Inf,5;-Inf,-pi, eps,0] 时,分析下列语句的执行结果。 • • • • • • • all(A) all(all(A)) any(A) any(any(A)) isnan(A) isinf(A) isfinite(A)
例
建立任意的3×3的矩阵,并求 出能被3整除的元素。
9 -1;-3 -9 0];
A=[1 0 3 ;2
%生成3×3的矩阵A P=rem(A,3)==0
%判断A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩阵中能被5整除的元素呢? P=rem(A,5)==0
例 求三阶魔方矩阵中绝对值大于7的元素。 a=magic(3);
MATLAB基础教程第2章

第二章 数组、矩阵及其运算
2.1 数组的创建和寻访
例2-2 一维数组的生成与访问
命令:X=rand(1,5) 命令:X(3) 命令:X([1 2 5]) 命令:X(1:3) 命令:X(3:end) 命令:X(3:-1:1) 命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.2 矩阵的运算
例2-6 矩阵的乘法(接着上面的例子) A*B 3*A
注意:矩阵相乘时要求A的列数等于B的行数
第二章 数组、矩阵及其运算
2.2 矩阵的运算
A/B(矩阵右除)表示的是方程X*B=A的解 A\B(矩阵左除)表示的是方程A*X=B的解
例2-7 矩阵的除法( 见教材P.23)
第二章 数组、矩阵及其运算
2.3 数组的运算
1、数组的基本运算
例2-8 ( 见教材P.25)
第二章 数组、矩阵及其运算
2.3 数组的运算
数组运算和矩阵运算指令对照表
数组运算 指令 A.’ A=s A+s,A-s s.*A s./A,A.\s A.^n A+B,A-B A.*B A./B B.\A 含义 非共轭转置,相当于conj(A’) 把标量s赋给A中每个元素 标量s分别于A的元素之和(差) 标量s分别于A的元素之积 S分别被A的元素除 A的每个元素自乘n次 对应元素相加(减) 对应元素相加(乘) A的元素被B的对应元素相除 (与上相同) A^n A+B,A-B A*B A /B B\A 方阵A自乘n次 矩阵和(差) 同内维矩阵相乘 A右除B A左除B S*A 标量s分别于A的元素之积 A’ 指令 共轭转置 矩阵运算 含义
第二章 数组、矩阵及其运算
第2章_MATLAB的基本操作

浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型
matlab第二章 帮助系统

第二章主要内容1.搜索路径搜索路径窗口调用1.搜索路径MATLAB的搜索路径是用于存储调用函数和函数库的路径,使用者编程时所使用的所有函数都存储在搜索路径中。
自带函数库添加函数库搜索时,MATLAB从搜索路径中按照从前到后的顺序进行搜索,直到搜到与所用函数相同文件名的m文件。
搜索路径的作用课堂思考题:如果在MATLAB的搜索路径中存在两个相同文件名的函数(在两个不同的路径中),那么使用这个文件名的函数时,MATLAB会怎样处理?搜索路径上的文件夹顺序十分重要。
当在搜索路径上的多个文件夹中出现同名文件时,MATLAB 将使用搜索路径中最靠前的文件夹中的文件。
如果搜索路径中没有与所使用函数相同名称的m 文件,MATLAB 会报错,出现“未定义函数或变量”提示。
这是很多MATLAB 初学者经常碰到的错误,一般是由于记错函数名或者未添加相应函数库造成的。
自带函数库MATLAB 函数是区分大小写的,跟FORTRAN 不同。
MATLAB 的变量名同样区分大小写,这跟FORTRAN 也是不同的。
“A ”和“a ”代表不同变量。
调用函数错误窗口说明自带函数库查看搜索路径1打开MATLAB搜索路径窗口(命令行pathtool)2命令行输入path从窗口添加1使用pathtool或者点击菜单栏调出搜索路径窗口,点击添加并包含子文件夹“添加文件夹”只包含所添加的文件夹,不包含其子文件夹。
从窗口添加2找到相应文件夹后,确定并保存。
注意:一定要点击保存,新添加的路径一般位于搜索路径的最前列。
2.扩展搜索路径命令行添加1使用path扩展搜索路径,该方法只能添加单个文件夹。
2使用addpath扩展搜索路径,该方法只能添加单个文件夹。
3使用命令行添加路径之后要使用savepath存储路径。
联机帮助系统help系列命令1help命令,help 函数名(用于已知精确函数名字的情况)help系列命令2Helpdesk, doc命令,用于调用联机帮助窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
【例2-14】求 >> tic, s=0; for i=1:100000, s=s+1/2^i+1/3^i; end
toc
2016年1月14日8时19分
MATLAB原理与工程应用
30
转移结构
2016年1月14日8时19分
MATLAB原理与工程应用
31
2016年1月14日8时19分
MATLAB原理与工程应用
MATLAB原理与工程应用
18
点运算 – 矩阵对应元素的直接运算
– 例如
2016年1月14日8时19分
MATLAB原理与工程应用
19
矩阵的逻辑运算
逻辑运算(相应元素间的运算) – 与运算 – 或运算 – 非运算 – 异或运算
2016年1月14日8时19分
MATLAB原理与工程应用
20
矩阵的比较运算
2.4.3 inline 函数和匿名函数
inline 函数,可以免去文件
MATLAB 7.0
2016年1月14日8时19分
MATLAB原理与工程应用
45
【例2-19】inline函数
f=inline(‘x.^3’,’x’); t=-1:0.05:1; y=f(t);
plot(t,y)
f=inline('sin(sqrt(x.^2.+y.^2))','x','y'); t=-1.5*pi:0.2:1.5*pi; [x,y]=meshgrid(t); z=f(x,y);mesh(x,y,z)
直接赋值语句
【例2-2】表示矩阵
2016年1月14日8时19分
MATLAB原理与工程应用
7
函数调用语句
冒号表达式
2016年1月14日8时19分
MATLAB原理与工程应用
8
【例2-3】 用不同的步距生成 (0,p) 间向量
2016年1月14日8时19分
MATLAB原理与工程应用
9
Linspace(a,b,n) 【例2-4】 0到pi的50个等间距点 T=linspace(0,pi,50) 相当于
2016年1月14日8时19分
MATLAB原理与工程应用
13
矩阵的代数运算
矩阵转置 – 数学表示
– MATLAB 求解 B=A’
2016年1月14日8时19分
MATLAB原理与工程应用
14
矩阵加减法
– 注意其意相容性
2016年1月14日8时19分 MATLAB原理与工程应用 15
39
【例2-17】前面的要求,m, 10000
•无需修改程序
2016年1月14日8时19分
MATLAB原理与工程应用
40
【例2-18】
•若只给出一个输入参数,则会自动生成一个方阵 •在函数中给出合适的帮助信息
•检测输入和返回变量的个数
edit myhilb
2016年1月14日8时19分
MATLAB原理与工程应用
字符串型数据:用单引号括起来 多维数组:是矩阵的直接扩展,多个下标 单元数组:将不同类型数据集成到一个变量名 下面,用{ }表示(细胞型) 结构体:A.b, 引用也用 A.b,不是A->b 类与对象:可以定义重载函数
2016年1月14日8时19分
MATLAB原理与工程应用
6
MATLAB 的基本语句结构
11
例子 – exstring.m – xibao.m – jiegou.m 字符串数据类型 单元数组(细胞) 结构型数据
2016年1月14日8时19分
MATLAB原理与工程应用
12
2.2 基本数学运算
2.2.1 代数运算 2.2.2 逻辑运算 2.2.3 比较运算 2.2.4 解析结果的化简与变换 2.2.5 基本数论运算
– eps, i, j, pi, Inf, NaN
– lastwarn, lasterr
2016年1月14日8时19分
MATLAB原理与工程应用
3
数值型数据结构
双精度数值变量 – IEEE标准,64位 (8字节),11指数位,53数 值位和一个符号位 – – double() 函数的转换 其他数据类型 – uint8,常用于图像表示和处理,8位 – int8(), int16(), int32(),uint16(), uint32()
2016年1月14日8时19分
MATLAB原理与工程应用
36
2.3.4 试探结构
全新结构
2016年1月14日8时19分
MATLAB原理与工程应用
37
2.4 MATLAB 函数的编写
函数是 MATLAB 编程的主流方法 除了函数外,还可以采用 M-script 文件 M-script 适合于小规模 【例2-16】若最大值不为 10000,需修改程序
2016年1月14日8时19分 MATLAB原理与工程应用 4
符号型变量数据类型
符号型,sym(A), 常用于公式推导 – 变量声明
– 采用变精度函数求值 【例2-1】求出 p 的 300 位有效数字
2016年1月14日8时19分
MATLAB原理与工程应用
5
MATLAB 支持的其他数据结构
subs(P,’s’,5)
2016年1月14日8时19分 MATLAB原理与工程应用 23
【例2-7】
求其 Taylor 幂级数展开 syms a b c d t; f= cos(a*t+b)+sin(c*t)*sin(d*t); f1=taylor(f) pretty(f1)
结果
2016年1月14日8时19分
对 m 和 10000 值的设置,不适合于M-script
2016年1月14日8时19分
MATLAB原理与工程应用
38
2.4.1 MATLAB 语言的函数的基本结构
• nargin, nargout, varargin, varargout
2016年1月14日8时19分
MATLAB原理与工程应用
0:pi/49:pi
2016年1月14日8时19分
MATLAB原理与工程应用
10
子矩阵提取
基本语句格式 【例2-5】子矩阵提取 – 提取 A 矩阵全部奇数行,所有列
– 提取 A 矩阵 3,2,1 行、2,3,4 列构成子矩阵 – 将 A 矩阵左右翻转
2016年1月14日8时19分
MATLAB原理与工程应用
MATLAB原理与工程应用
2
2.1 MATLAB 语言基础
MATLAB 语言的变量名规则 – 由一个字母引导,后面可以为其他字符 – 区分大小写 Abc ABc – 有效 MYvar12, MY_Var12 和 MyVar12_ – 错误的变量名 12MyVar, _MyVar12 MATLAB 的保留常量
2016年1月14日8时19分
MATLAB原理与工程应用
46
本章难点
矩阵的输入与提取 冒号运算符 点运算 向量化编程 函数的编写与调用
2016年1月14日8时19分
MATLAB原理与工程应用
47
41
2016年1月14日8时19分
MATLAB原理与工程应用
42
2016年1月14日8时19分
MATLAB原理与工程应用
43
2.4.2 可变输入输出个数
【例2-21】 可以计算两个多项式的积 用 varargin 实现任意多个多项式的积
2016年1月14日8时19分
MATLAB原理与工程应用
44
8 x1 x2 6 x3 7.5 3x1 5 x2 7 x3 4 4 x1 9 x2 2 x3 12
8 3 4 1 5 9 6 x1 7.5 x 4 7 2 2 x3 12
第 2 章 程序设计基础
现代设计与分析研究所 王 雷
2016年1月14日8时19分 MATLAB原理与工程应用 1
本章主要内容
2.1 MATLAB 语言基础 2.2 MATLAB 基本数学运算 2.3 MATLAB 语言流程控制 2.4 MATLAB 函数的编写
2016年1月14日8时19分
MATLAB求解 A=[8 1 6;3 5 7;4 9 2]; B=[7.5 4 12]’; x=A\B
2016年1月14日8时19分 MATLAB原理与工程应用 17
矩阵翻转 – 左右翻转 – 上下翻转 – 旋转 90o 矩阵乘方 – A 为方阵,求 – MATLAB 实现:
2016年1月14日8时19分
各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() 实例
2016年1月14日8时19分
MATLAB原理与工程应用
21
解析结果的化简与变换
其他常用化简函数
【例2-6】
2016年1月14日8时19分
MATLAB原理与工程应用
22
变量替换
syms x subs(P,’s’,x)
32
【例2-15】用循环求解 求最大的 m
2016年1月14日8时19分
MATLAB原理与工程应用
33
2.3.3 开关结构
2016年1月14日8时19分
MATLAB原理与工程应用