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命令,用于调用联机帮助窗口。
第二章 MATLAB基础知识

2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am
Matlab第2章 数值数组及向量化运算

21 22 23 24
六. A ( 3 , 1:3 ) = 9 10 11
1.3:二维数组元素的标识和寻访 ——数值数组的创建和寻访
二维数组 A
1 2 3 4 5 6 7 8 9 10 11 12
单下标法 一、 A(:)=1:12 A= 1 2
二、A(8)
3 4
5 6
7 8
9 11 10 12
ans = 8
标, A=rand(3,3),然后根据A写出两个矩阵:一个对角阵 B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全 为0,而其余元素与对应的A阵元素相同。(提示: diag diag)
作业提交电子版的word文档,由学习委员统一收齐,发到 smnsss@邮箱,文件命名为“学号+姓名+第几次作业”,比如 你叫魏川东,学号是1207200181,第1次作业,那文件名就应该是: “1207200181魏川东1”。本周六晚上12:00之前发到我的邮箱。
1.4:数组操作技法综合 ——数值数组的创建和寻访
b=diag(A) B=diag(b) b= 1 4 B= 1 0 0 4 D1=repmat(B,2,4) D1 = 1 0 1 0 0 4 0 4 1 0 1 0 0 4 0 4
%即ReplicateMatrix,复制和平铺矩阵 % 1 0 1 0 0 4 0 4 1 0 1 0 0 4 0 4
randn(2,3)
0
0
1
函数生成法
1.2:二维数组的创建 ——数值数组的创建和寻访
D= 1 0 0 0 1 0 0 0 1 diag(D) ans = 1 1 1 diag(diag(D)) ans = 1 0 0 0 1 0 0 0 1
matlab-第二章

1,在一个MA TLAB命令中,6+7i和6+7*i有何区别?i和I有何区别?第一个i代表一个变量,6+7i是一个函数,第二个代表虚数,6是实部,7代表虚步.I只代表变量.2,.设A和B是两个同大小的矩阵,试分析A*B和A.*B、A./B和B.\A、A/B和B/A的区别?如果A和B是两个标量数据,结论又如何?A *B是矩阵相乘,A.*B表示A和B单个元素之间对应相乘。
A./B和B.\A值相等,是一样的。
A/B等效于B的逆右乘A的矩阵,B\A等效于B矩阵逆左乘A矩阵。
如果A和B是两个标量数据,结论是都没有区别。
3,写出完成下列操作的命令。
(1)删除矩阵A的第7号元素A(7)=[](2)将向量t的0元素用机器零来代替t(find(t==0))=eps(3)将含有12个元素的向量x转换成3*4矩阵newA=reshape(A,3,4)(4) 求一个字符串的ASCIIch=['a b c';'1 2 3'];abs ch(5) 产生和A同样大小的幺矩阵ones(size(A))(6) 从矩阵A提取主对角线元素,并以这些元素构成对角阵B。
A=[1 2 3;4 5 6;7 8 9];D=diag(A)B=diag([1,5,9])4, .要生产均值为3,方差为1的500个正态分布的随机序列,写出相应的表达式y=3+sqrt(1)*randn(500)5,(1)主对角元素1 1 5 9上三角矩阵1 -1 2 30 1 -4 20 0 5 20 0 0 9下三角矩阵1 0 0 05 1 0 03 0 5 011 15 0 9逆矩阵-0.1758 0.1641 0.2016 -0.0227-0.1055 -0.1016 -0.0391 0.0664-0.0508 -0.0859 0.1516 0.00230.3906 -0.0313 -0.1813 0.0281行列式的值1280秩4范数A1=norm(A,1)=20 A2=norm(A)= 21.3005 A3=norm(A,inf)=35条件数A1=cond(A,1)= 14.4531 A2=cond(A,2)= 11.1739 A3=cond(A,inf)= 22.0938迹16(2)主对角元素0.43 4上三角矩阵0.4300 43.0000 2.00000 4.0000 21.0000下三角矩阵0.4300 0 0-8.9000 4.0000 0逆矩阵0.0022 -0.01750.0234 -0.0017-0.0035 0.0405行列式的值秩2范数B1=norm(B,1)= 47 B2=norm(B)= 43.4271 B3=norm(B,inf)= 45.4300 条件数B2=cond(B,2)= 1.9354迹4.43006,all(A)=0any(A)=1isnan(A)= 0 1 0 0 0 0 0isinf(A)= 0 0 1 1 0 0 0isfinite(A)= 1 0 0 0 1 1 1。
第2章MATLAB的基本语法课件

handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vanderm阵
此外,常用的函数还有reshape(A,m,n),它在 矩阵总元素保持不变的前提下,将矩阵A重新 排成m×n的二维矩阵。
4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。 例如
A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A]
C=
3. 内存变量文件 ❖利用MAT文件(.mat)可以把当前MATLAB
工作空间中的一些有用变量长久地保留下 来。
❖MAT文件的生成和装入由save和load命令 来完成。常用格式为:
save 文件名 [变量名表] [-append][-ascii]
load 文件名 [变量名表] [-ascii]
2.3 MATLAB矩阵
• 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符
• 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
2.2.4 预定义变量
在MATLAB工作空间中,还驻留几个由 系统本身定义的变量。它们有特定的含 义,在使用时,应尽量避免对这些变量 重新赋值。
❖ 变量的元素用圆括号“( )”中的数字 (下标)表示。一维矩阵(数组)中的
元素用一个下标表示;二维矩阵用两个 下标表示,以逗号分开
Matlab基础及其应用 第2章 MATLAB数据对象

y=
0.5690 + 1.3980i
2.2 变量及其操作
2.2.1 变量与赋值
3.预定义变量
MATLAB基础与应用教程
2.2 变量及其操作
MATLAB基础与应用教程
2.2.2 变量的管理
1.内存变量的显示与修改
who函数按字母顺序列出当前工作区中的所有变量,whos函 数工作区中按字母顺序列出当前工作区中的所有变量及大小、 类型。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
1.变量命名 在MATLAB中,变量名是以字母开头,后跟字母、数字或下划 线的字符序列,最多63个字符。 变量名区分字母的大小写。 不能使用MATLAB的关键字作为变量名。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
构建二维字符数组可以使用创建数值数组相同的方法matlab基础与应用教程25字符数据及操作251字符向量与字符数组matlab还有许多与字符处理有关的函数matlab基础与应用教程25字符数据及操作例22建立一个字符串向量然后对该向量做如下处理
MATLAB基础与应用教程
第2章 MATLAB数据对象
【本章学习目标】 掌握MATLAB数据对象的特点。 掌握变量的创建与管理。 掌握矩阵的生成、转换与运算。 掌握MATLAB基本的运算规则。
0 -2 -4 -6 -8
2.3 MATLAB数组
MATLAB基础与应用教程
2.3.1 构造数组
2.构造行向量 用linspace函数构建线性等间距的行向量,logspace函数构 建对数等间距的行向量: linspace(a, b, n) logspace(a, b, n) 其中,参数a和b是生成向量的第1个和最后1个元素,选项n 指定向量元素个数。当n省略时,默认生成100个元素。
MATLAB第二章

function [egg1,egg2,chicken1]=myegg(n)
% egg1 隔1天的蛋个数 % egg2 隔2天的蛋个数 % chicken1 过n天后母鸡个数 if n==1
egg1=1; egg2=0; chicken1=1; elseif n==2 egg1=1; egg2=1; chicken1=1;
27
>> x=0:0.1:2*pi; >> y=sin(x); >> plot(x,y) >> plot(x,y,‘ro’) %默认是蓝色曲线 >> x=[0 1 2 5];y=[4 -2 1 2]; >> plot(x,y) >> fplot(‘x^2+4*x+1’,[-15 15]) %函数用字符串表示
1 -8 4 9 -4 5 7 -9 >> fun=@myfun5 %例28中的函数 fun =
@myfun5 >> y=fun(A) %直接调用 y=
1 -13 16 81 -5 25 49 -15 >> y=feval(fun,A) %利用feval y=
1 -13 16 81 -5 25 49 -15
1 4 9 16 5 10 15 20
2024/7/5
第二章 MATLAB编程与作图
24
>> k=5;
>> ff=@(x)x^2+2*x+k %可以使用空间中的变量k
ff =
@(x)x^2+2*x+k
>> ff(5)
ans =
40
>> A=[1 2 ;3 4]
Matlab第2章 连续信号的傅里叶变换

连续信号的傅里叶变换
第2章 连续信号的傅里叶变换
在一些前续课程中,我们讨论信号一般在时域进行,重点考 察其时间函数的特性。从本章起,我们要进入信号与系统的变换 域分析。在变换域分析中,首先讨论傅里叶分析。傅里叶分析的 研究与应用是在傅里叶级数正交函数展开的基础上发展而产生的, 至今已经历一百余年。1807年,法国数学家傅里叶(Jean Baptiste Joseph Fourier,1768 -1830) 向巴黎科学院呈交“热的传播”论文, 推导出著名的热传导方程 ,并在求解该方程时发现解函数可以由 三角函数构成的级数形式表示,从而提出任何一个函数都可以展 成三角函数的无穷级数,傅里叶分析等理论由此产生。当今,傅 里叶分析已经成为信号分析与系统设计不可缺少的重要工具。
(2.1. 5)
n1
式中n为正整数,其各次谐波分量幅度值的计算公式:
直流分量
a0
1 T1
T1 f (t)dt 1
0
T1
T1
2 T1
f (t)dt
2
n次谐波余弦分量的系数
an
2 T1
T1 0
f
(t) cos n1tdt
2 T1
T1
2 T1
f (t) cos n1tdt
须是有限值。
一般周期信号都是满足这三个条件,任何满足狄义赫利条件
的周期函数都可展成傅里叶级数。
1,三角形式的傅里叶级数
由数学分析课程已知,周期信号 ,f(t) 周期为T1,基波
角频率为1
2π T1
,在满足狄义赫利条件时,可展开成
f (t) a0 (an cos n1t bn sin n1t)
MATLAB实用教程第二章

1.矩阵的合并
矩阵的合并就是把两个或者两个以上的矩阵 连接成一个新矩阵矩阵构造符 可用于构造矩阵并 可以作为一个矩阵合并操作符 ➢ 表达式C=A B在水平方向合并矩阵A和B; ➢ 表达式C=A;B在竖直方向合并矩阵A和B
具有相同行数的两个矩阵合并为一个新矩阵
12 34 56 3×2
1.访问单个元素
2.线性引用元素
➢ 对于矩阵A线性引用元素的格式为 Ak通常这样的引用用于行向量或列 向量但也可用于二维矩阵
➢ MATLAB按列优先排列的一个长列向量格 式线性引用元素来存储矩阵元素
3.访问多个元素
操作符:可以用来表示矩阵的多个元 素若A是二维矩阵其主要用法如下: ➢ A:: 返回矩阵A的所有元素 ➢ Ai: 返回矩阵A第i行的所有元素
3.用满矩阵和稀疏矩阵存储方式分别构造下述矩 阵:
4.采用向量构造符得到向量159…41 5.按水平和竖直方向分别合并下述两个矩阵:
6. 分别删除第5题两个结果的第2行 7. 分别将第5题两个结果的第2行最后3列的数值
改为11 12 13 8. 分别查看第5题两个结果的各方向长度 9. 分别判断pi是否为字符串和浮点数 10.分别将第5题两个结果均转换为29的矩阵 11.计算第5题矩阵A的转秩 12.分别计算第5题矩阵A和B的A+B、A.* B和
行运算; ➢ 不同优先级的运算符采用先进行优先高的
运算
运算符的优先等级表
由表中可以看到括号的优先级别最高因此可 以用括号来改变默认的优先等级
2.4 字符串处理函数
2.4.1 字符串的构造 2.4.2 字符串的比较 2.4.3 字符串的查找和替换 2.4.4 字符串与数值间的转换
matlab第二章

ceil(1.8)=2
4)round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=2;round(1.3)=1;round(1.52)=2。
MATLAB 中的变量不需要事先定义,在 遇到新的变量名时,MATLAB会自动建立该变 量并分配存储空间。当遇到已存在的变量时, MATLAB会更新其内容,如有必要会重新分配
存储空间。
下一页
变量名由字母、数字和下划线构成, 并且必须以字母开头,最长为31个字符。 MATLAB能区分大小写字母,变量A和a是
例如: if a>1
disp('a>1')
elseif a==1
disp('a=1')
else disp('a<1') end 上一页 返回
3、逻辑函数
MATLAB提供了许多测试用的逻辑函数,
主要有all、any、find、exist、is*等。
返回
all函数
利用all函数可以测定矩阵每列所有
元素是否非零。若该列所有元素非零,则
利用重复函数repmat可以将小矩阵以
重复的形式产生大矩阵。
例如: f=repmat(a,2,3)
3、矩阵缩小 将大矩阵变成小矩阵的方法有两种: 抽取法和删除法。 (1)抽取法是指从大的矩阵中抽取中 的一部分,从而构成新的矩阵。例如: a=[1:4; 5:8; 9:12; 13:16] b=a(2:3, 3:4) c=a([1 4],[1 3]) d=a([2 4],[1 3])
Matlab 教程第2章 MATLAB矩阵及其运算

H=invhilb(4)
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第一列外, 其他每个元素都与左上角的元素相同。生 成托普利兹矩阵的函数是toeplitz(x,y),它 生成一个以x为第一列,y为第一行的托普 利兹矩阵。这里x, y均为向量,两者不必等 长。toeplitz(x)用向量x生成一个对称的托普 利兹矩阵。例如
它专门建立一个M文件。下面通过一个简 单例子来说明如何利用M文件创建矩阵。
例2-2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑 器,并输入待建矩阵:
(2) 把输入的内容以纯文本方式存盘(设文 件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix, 即运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
M=100+magic(5)
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为1, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 阵。
(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变
量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删
除,而空矩阵则存在于工作空间中,只是 维数为0。
2.2.3 特殊矩阵 1.通用的特殊矩阵 常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态 分布随机矩阵。
- 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原理与工程应用