MATLAB矩阵及运算.ppt

上传人:xin****828 文档编号:15473833 上传时间:2020-08-12 格式:PPT 页数:103 大小:1.26MB
收藏 版权申诉 举报 下载
MATLAB矩阵及运算.ppt_第1页
第1页 / 共103页
MATLAB矩阵及运算.ppt_第2页
第2页 / 共103页
MATLAB矩阵及运算.ppt_第3页
第3页 / 共103页
资源描述:

《MATLAB矩阵及运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB矩阵及运算.ppt(103页珍藏版)》请在装配图网上搜索。

1、第二章 矩阵及其运算2.1 表达式(语句)2.2 矩阵的产生与操作2.3 矩阵的基本运算2.4 高维矩阵2.5 特殊符号2.6 基本数学函数,2.1表达式,MATLAB采用表达式语言形式,语句常用的形式: 例:1.3+2*0.9 %值存放在默认变量ans中 a=1.3+2*0.9 x=rand(2,4) %产生2*4大小的随机矩阵 如果表达式过长,可分装在几行,行末加三个点,表示下一行是续行。,z=3*(1-x).2.*exp(-(x.2)-(y+1).2)-10*(x/5-x.3-y.5). .*exp(-x.2-y.2)- 1/3*exp(-(x+1).2 - y.2);,2.1表达式,表

2、达式的组成: 1)数值 2)变量 3)操作符 4)函数,2.1.1 数值,在MATLAB中,所有的数都用浮点双精度类型来存储和运算。(实矩阵的每个元素占8个字节,复矩阵的每个元素占16个字节) 缺点:浪费内存、降低运算的速度。 优点:省略了定义数据类型的语句,而且编程时无须考虑数据类型的匹配问题,减少了出错的可能。 这种战略取得了成功:使人们不在编程细节上化精力,把注意力集中到科学计算的方法和建模合理性等大问题上。,重点,2.1.1 数值,MATLAB采用十进制表示形式 合法的数值形式举例: 3 -99 0.001 .19 -5.1+6.8i 7.8-6j (虚数) 9.4e6 1.3e-3

3、-4.5E33 (科学表示法),2e3.4 e后面不允许小数形式,2.1.2 变量,变量的命名规则: 1)变量名、函数名对字母的大、小写敏感。 2)变量名由字母、数字和下划线构成。第一个字母必须是英文字母。 3)有字符个数限制(版本5.0 :最多31个字符),2.1.2 变量,MATLAB系统默认变量 (注意大小写!) i 或 j : 虚单元 正确:5+7j 错误:5j7 pi : 圆周率 ans : 计算机结果的缺省变量名 eps : 机器的零阈值 2.2204e-016 Inf 或 inf : 正无穷大 NaN 或 nan : 不定值(即无效数据),重点,可以表示“无穷大”、“不定值”,说

4、明matlab容错性强,运算优先级: 算术运算符关系运算符逻辑运算符 圆括号可以改变其顺序!,2.1.3 操作符,MATLAB操作符包括: 算术运算 关系运算 逻辑运算 位运算 其他操作符,重点,一)算术运算符, :加法 :减法 * :矩阵乘法(叉乘) .* :矩阵元素乘法 / :矩阵右除法 ./ :矩阵元素右除法 :矩阵左除法 . :矩阵元素左除法, :矩阵指数 . :矩阵元素指数 :复共轭转置 . :非共轭转置,二)逻辑运算符,针对元素 注释 行末的“;”用于抑制结果在屏幕上显示 例如: sin(a),sin(b) ,a+b 同在一行的表达式,必须用“,”分开,可通过输入每个元素的方式产生

5、 可以通过数据文件产生 可以通过MATLAB提供的标准函数产生 直接调用其他M文件,即可使用已有的矩阵变量,2.2 矩阵的产生与操作,矩阵的产生:,在MATLAB中,矩阵放在 中,行元素用“,”或用空格分开,一行元素输入结束后,用“;”或用回车隔开。 如:a=1 4 6;5 8 9;6 3 2 当矩阵中某些元素之间数值连续时 如:a=1 2 3 4 5 可用冒号(:)操作符使输入简化 即a= 1:5 ,通过直接输入元素的方式产生矩阵,输入方法一: a= 1 2 3 ;5 6 7 输入方法二: a= 1 , 2 , 3 5 , 6 , 7 因为数值连续,所以有方法三: a= 1:3 ; 5:7

6、,举例:,通过数据文件产生矩阵,例如,我们已经得到一个数据文件,名为mydata.dat,里面存放一个5*3的数组,则可用命令: load mydata.dat 得到矩阵mydata。 应用:可以和其它语言程序进行数据通信。 举例:,通过MATLAB提供的函数产生矩阵,用内部函数可生成一些特殊矩阵 (函数见书上P50),重点,1、单位矩阵( E方阵)和广义单位矩阵的产生,重点,通过MATLAB提供的函数产生矩阵,2、随机数矩阵的产生 随机数的产生常常用在控制系统仿真以及信号分析,是一个非常重要的手段。MATLAB提供了很好的随机数产生函数: rand() randn(),通过MATLAB提供的

7、函数产生矩阵,1)产生0,1之间的均匀分布的随机数:,重点,通过MATLAB提供的函数产生随机矩阵,2)产生元素在m,n间分布的随机数:,重点,通过MATLAB提供的函数产生随机矩阵,3)产生均值为0,方差为1的标准正态分布随机数:,重点,问题:为什么这5个随机数相加均值不等于0? 该函数是产生了随机数,但是可能个数为10000或更多,均值为0。该函数仅仅是从中抽取了几个显示给用户。,通过MATLAB提供的函数产生随机矩阵,4)产生均值为m,方差为q2的正态分布随机数:,通过MATLAB提供的函数产生随机矩阵,3、对角矩阵的产生 第一步: 给出对角线上的元素,放在一个向量V中。 第二步: 用函

8、数 A=diag(V); 可产生相应的对角矩阵。,通过MATLAB提供的函数产生矩阵,4、用其它函数也可间接产生用户想要的矩阵,通过MATLAB提供的函数产生矩阵,通过用户编写M文件的方式产生矩阵,例: A,B,C矩阵是用户自定义的大矩阵,经常要用到,就应编写一个M文件保存。 要使用这些矩阵时,执行所在M文件。 演示,旋转 重新排列 复制,翻转 拼接 行列删除,2.2 矩阵的产生与操作,重点,矩阵的操作,1)矩阵的旋转,矩阵元素的排列旋转90度: B=rot90(A) 逆时针旋转90度,2)矩阵的重新排列,将矩阵的元素重新排列: reshape(矩阵,行数,列数),按原矩阵的列顺序,重点,3)

9、矩阵的复制,将矩阵元素复制: repmat(原矩阵,行复制数,列复制数),重点,4)矩阵的翻转,fliplr( ) 将矩阵左右镜像翻转 flipud( ) 将矩阵上下镜像翻转 A = 9 6 8 4 2 4 7 0 c1 = fliplr(A) 4 8 6 9 0 7 4 2 C2 = flipud(A) 2 4 7 0 9 6 8 4,5)矩阵的拼接,通过连接符 ,可将小矩阵拼接成大矩阵 注意: 横拼接: , 纵拼接: ;,重点,6)矩阵的行列删除,利用空矩阵“ ”可从矩阵中删除指定的行或列,重点,思考:size( ),2.3 矩阵的基本运算,复习线性代数基础知识: 1)加、减法:同尺寸矩阵

10、 A+B=(aij+bij) mn 2)数乘:设Amn,则kA=(kaij)mn。 3)矩阵乘法:设Amk,Bkn 矩阵A的列数要等于矩阵B的行数 则AB=Cmn cij=ai1b1j+ai2b2j+ 矩阵乘法不满足交换律,即一般ABBA。,复习线性代数基础知识: 4)转置:把矩阵的行换成列 (Amn)= Anm 5)逆阵: 对n阶方阵A(必须是方阵) ,如果有一个n阶方阵B, 使得: AB=BA=E 则称: 方阵A是可逆的, 方阵B是为A的逆阵,记为B=A-1,2.3 矩阵的基本运算,选择矩阵元素 a(i,j)表示矩阵a的第i行第j列的元素。 a(i,:)表示矩阵a的第i行所有列的元素,重点

11、,2.3 矩阵的基本运算,矩阵元素的运算 :加法 :减法 .* :矩阵元素乘法(点乘) ./ :矩阵元素右除法 . :矩阵元素左除法 . :矩阵元素指数 :复共轭转置 . :非共轭转置,矩阵的运算 * :矩阵乘法(叉乘) / :矩阵右除法 :矩阵左除法,1、算术运算,重点,加、减对应的矩阵元素相运算,点乘元素对元素乘法叉乘矩阵对矩阵乘法 对比举例,矩阵的右除、左除,MATLAB的基本处理单元是复数矩阵(标量是一个1*1的矩阵)。而在线性代数理论中没有除法运算。所以定义了除法为乘法的逆运算。 注意:因为矩阵乘法不满足交换律,即一般A*BB*A,所以除法要考虑“右除”、“左除”。,重点,矩阵的右除

12、、左除,Matlab右除法表示形式: C=A/B 或 C=A * i n v ( B ),Matlab左除法表示形式: C=AB 或 C=i n v ( A ) * B,注意:只有行列式不为0的方阵才存在逆阵!,则在MATLAB中运行结果:,重点,矩阵元素的右除、左除,分析: K/NK*inv(N) 因为N不是方阵,没有逆阵,所以报告错误。 KNinv(K)*N 因为K的逆阵尺寸22,N的尺寸23,所以结果矩阵23。,则MATLAB中A.B的结果:,矩阵元素的指数运算,%复共轭转置 %非共轭转置 .,矩阵元素的复共轭转置和非共轭转置,2、关系运算, : 大于 = : 大于等于 = : 等于 =

13、 : 不等于 注意: 两个矩阵的尺寸应相同 分别比较对应位置上的元素 比较结果为1或0,重点,2、关系运算,3、逻辑运算,运算符: % eps0 B0 2 4 1.2; C=xor(A,B) C= 0 1 0 0,重点,2)all(x),1)函数作用在向量上时: 判别向量的元素是否全部非0。 2)函数作用在矩阵上时: 判别矩阵的每列是否全部非0。 函数的返回值为0(假)或1(真),重点,3)any(x),1)函数作用在向量上时:判别向量是否有非0的元素 2)函数作用在矩阵上时:判别矩阵的每列是否有非0的元素 函数的返回值为0(假)或1(真)。,重点,4)find(x),函数功能:找出矩阵x中的

14、非0元素及其下标 1)函数输出1个变量 2)函数输出2个变量 3)函数输出3个变量 注意:按照竖列的搜索顺序!,重点,函数输出1个变量时: 返回值: 非0元素的搜索次序,函数输出2个变量时: 返回值: 非0元素的行下标、 列下标,函数输出3个变量时: 返回值: 行下标、列下标、非0元素值,5)isnan(x) 找出矩阵x中含有的Nan数据(无效数据的来源:0/0,Inf/Inf),应用举例: 每一列是一个采样样本,请删除含有无效数据的样本。,(1) 找到无效数据的位置,(2) 进行数据的再处理(删除无效数据),重点,其他常见函数,sum()对矩阵按列求和 或对向量求和 length( ) 测出

15、向量长度 size( ) 测出矩阵大小 det( ) 求矩阵对应的行列式,重点,length 功能:求向量长度 格式:nlength(x) 当x为向量时,它等于向量的长度。当X是矩阵时,可得到X的最长维尺寸。,X5,7,9,0; nlength(X) 思考:n?,X5,7,1;9,11,0; nlength(X) 思考:n?,Xrand(5,12,3); nlength(X) 思考:n?,size 功能:求阵列维大小,xrand(2,4,8) ; d= size(x) msize(x,2) 思考:d? m?,d=2 4 8 m=4,x1,2,4 0,8,9 2,3,7 1,4,2 ; d= s

16、ize(x) msize(x,2) 思考:d? m?,d=4 3 m=3,2.4 高维矩阵,大于2维的矩阵称为高维矩阵。 习惯上称三维矩阵的第一维为 “行”,第二维为“列”,第三维为“页”。 访问矩阵A中第2页中的第三行第四列的元素, 使用下标 A(3,4,2),2.4.1 高维矩阵的产生 方法一:直接对高维赋值 (注意:自动补零),重点,2.4.1 高维矩阵的产生,方法二:用拼接函数cat,用低维矩阵拼成高维矩阵,回忆:通过连接符 ,可将小二维矩阵拼接成大二维矩阵。(,表示横拼接 ;表示纵拼接) 有相似功能的函数:cat(拼接模式,矩阵1,矩阵2) 拼接模式:1 纵拼 2 横拼 3 层拼,重

17、点,等价为A;B,等价为A,B或A B,利用cat函数产生,2.4.1 高维矩阵的产生,方法三:用函数reshape 例: A=1:18; reshape(A,2,3,3); 表示把向量A中的118的数放在一个2*3*3的矩阵中。 注意排列次序!,2.4.2 高维矩阵的标识,1、 函数:ndims( ) 得到多维矩阵的维数,2.4.2 高维矩阵的标识,2、 函数:size( ) 得到各维的尺寸,2.4.2 高维矩阵的标识,3、 函数:length( ) 得到向量的长度 或 得到矩阵的维数中 最大的那个,2.4.4 高维矩阵的应用图像处理,1.真彩色位图文件的读入函数 x=imread(test

18、.bmp); 得到一个8位的m*n*3的数组; x(:,:,1):为红色分量 x(:,:,2): 为绿色分量 x(:,:,3): 为蓝色分量 因为在MATLAB中unit8型数据不能直接运算; 所以如果需要运算的话,必须先转换数据类型。 x=double(x);,2.4.4 高维矩阵的应用图像处理,2.真彩色位图文件的写回函数 imwrite(x,test.bmp); 3.真彩色位图显示函数 imagesc(x); 图象处理通常是先读入图像文件,作了滤镜效果后,(每一种滤镜都代表着一种数学处理方法),显示在屏幕上,如果保留则写回文件。,思考:如何实现红色滤镜效果,clear all %先清空工

19、作空间 x=imread(苹果1.bmp);%读入图像数据 figure(1);%设置1号图形窗口 imagesc(x);%显示苹果图像 y=double(x);%将unit8型转换为双精度型 y(:,:,1)=0;%设置红色分量为0 y=uint8(y);%转换为unit8型 figure(2);%设置2号图形窗口 imagesc(y);%显示苹果图像,红色滤镜,%去红色 y(:,:,1)=0 %去绿色 y(:,:,2)=0 %去蓝色 y(:,:,3)=0,思考:如何将图片旋转90度显示?,感兴趣的同学可以尝试: 用MATLAB可以自己实现photoshop中的各种滤镜功能,关键是数学算法!

20、 比如:如何将图片左右镜像翻转显示? 如何提高图片的亮度? 如何对图片去噪?,2.5 特殊符号,1) 符号的作用是: a. 用来生成一个向量/矩阵 例如:a= b, b+3; 2*b,6-b; b. 空矩阵(可以删除矩阵中不需要的部分) 例如:a(:,3)= ; a(3,:)= ; c. 可以作为多输出函数的输出变量的列表 例如: i, j, s =find(any(x);,重点,2.5 特殊符号,2). 符号的作用是: a. 用来表示一个小数点 例如:a = 10. 32 ; b. 用来表示矩阵元素对元素的运算 例如:c = a . * b ; c. 可以用来对结构的域进行访问 例如:a .

21、 field; (面向对象),重点,2.5 特殊符号,3):符号的作用是: 例子 等价为 A=1:4 A=1,2,3,4 A=1:0.5:4 A=1.0,1.5,2.0,2.5.3.0,3.5,4 A(1,: ) A的第1行的所有元素 A=( 1, :, 4 ) A的第1行、第4页上的所有元素 A(:) 将A的所有元素排成列向量 4)% 符号的作用是:注释符,重点,P15:常用标点的功能,2.6 基本数学函数,基本数学函数是MATLAB系统提供给用户进行基本数学运算的函数。 基本数学函数均是对阵列中的元素作用。,2.6.1 三角函数,1)正弦函数和双曲正弦函数: Y=sin(X); Y=sin

22、h(X); 余弦函数和双曲余弦函数: Y=cos(X); Y=cosh(X); 3)反正弦函数和反双曲正弦函数: Y=asin(X); Y=asinh(X); 4)反余弦函数和反双曲余弦函数: Y=acos(X); Y=acosh(X);,重点,2.6.1 三角函数,5)正切函数和双曲正切函数: Y=tan(X); Y=tanh(X); 6)反正切函数和反双曲正切函数: Y=atan(X); Y=atanh(X); 其它三角函数请同学自己看书,2.6.2 指数和对数函数,1)指数函数 Y=exp(X);如果x=a+jb,则: 2)对数函数 自然对数:Y=log(X); 常用对数:Y=log10

23、(X); 以2为底的对数:Y=log2(X); 如果x=a+jb,则:,log(x)=log(abs(x)+j*atan2(b,a),重点,2.6.2 指数和对数函数,4) 平方根函数 y=sqrt(x); 思考:复数的平方根,3) 以2为指的函数:pow2是log2的逆函数,y=pow2(x)可得到2的x次幂。,重点,2.6.3 复数函数,1)实数的绝对值和复数的模 y=abs(x) 2) 求相角函数 y=angle(x) 3) 复共轭函数 y=conj(x) 4)取实部函数 y=real(x) 取虚部函数 y=imag(x),重点,2.6.4 取整和求余函数,四舍五入取整函数 y=roun

24、d(x) 2)符号函数 y=sign(x);,2.6.4 取整和求余函数,3)取余函数 z=mod(x,y); x:被除数; y:除数 z是x/y后的余数 注意:x的元素可是小数,不能是复数 y的元素可是小数,本 章 总 结,表达式 1、数值 2、变量(命名规则,默认变量) 3、操作符(算术,关系,逻辑等) 4、函数(分类,用法),总 结,矩阵 1、表示 2、产生(直接输入,文件,系统函数产生,用户程序) 3、操作(6种) 矩阵运算(算术,关系,逻辑和常用函数),测试,生成-2,2之间的均匀分布的随机数数组,其命令为: ; 生成均值为5,方差为9的正态分布的随机数数组,其命令为: 。 A=1

25、2 3;4 5 6;3 2 1; B=A; C=A.*B; C(: , 1)=_ 已知A=1 2 5 6; D=diag(A,-1); D= _。,测试,已知A=1,2,3;4,5,6;7,8,9,B=3,C=A+B,令C(2:2:8)= ,则C= 。 已知A=eye(2,3); C=A; B=reshape(1:6, 3,2); 则B+C=_。,编程:产生一个(0,1)间随机分布的105矩阵a,然后统计a中大于0.6且小于0.7的元素个数number,如果number小于10,向用户报告“符合条件的元素太少!”。,参考程序 : a=rand(10,5); N=a0.6&a0.7 number=sum(sum(N) if number10 disp(符合条件的元素太少!) end,END,Y=sin(X),Y=sinh(X),Y=exp(X),Y=log(X),

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!