matlab03数组与矩阵.ppt

上传人:小飞机 文档编号:6511681 上传时间:2023-11-08 格式:PPT 页数:32 大小:428KB
返回 下载 相关 举报
matlab03数组与矩阵.ppt_第1页
第1页 / 共32页
matlab03数组与矩阵.ppt_第2页
第2页 / 共32页
matlab03数组与矩阵.ppt_第3页
第3页 / 共32页
matlab03数组与矩阵.ppt_第4页
第4页 / 共32页
matlab03数组与矩阵.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《matlab03数组与矩阵.ppt》由会员分享,可在线阅读,更多相关《matlab03数组与矩阵.ppt(32页珍藏版)》请在三一办公上搜索。

1、1,MATLAB语言基础,矩阵与数组多项式处理,2,矩阵与数组,MATLAB的运算事实上是以矩阵(matrix)及数组(array)方式在做运算,而这二者在MATLAB中的基本运算性质不同,矩阵采用线性代数的运算方式,而数组强调元素对元素的运算。矩阵和数组在MATLAB中的表达形式是同样的。当一个变量为矩阵或是数组时,如果是要个别键入元素,须用中括号 将元素置于其中。MATLAB以矩阵为基本的运算单位,向量和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作是只有一个元素的矩阵。,3,矩阵的创建,(1)用直接输入法创建矩阵 当需要的矩阵维数比较小时,从键盘上直接输入一系列矩阵元素是

2、最直接的创建方法。直接输入法需遵循以下基本规则:整个矩阵应以“”为首尾,即整个输入矩阶必须包含在方括号中矩阵中,行与行之间必须用分号(;)或Enter键(按Enter键)符分隔每行中的元素用逗号(,)或空格分隔矩阵中的元素可以是数字或表达式,但表达式中不可包含未知的变量MATLAB用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作“空阵”(Empty Matrix),4,例2-1 用直接输入法创建一个44的A矩阵。只要在MATLAB上作窗口中直接输入下列矩阵元素即可:A=2 3 4 5;3 4 5 6;4 5 6 7;7 8 9 10 键盘输入内容,元素之间用空格分开,A

3、=2 3 4 5 3 4 5 6 4 5 6 7 7 8 9 10%键盘输入内容,行与行之间用Enter键分隔,5,(2)由矩阵编辑器创建和修改矩阵 当需要建立的矩阵很大,不适合手工直接输入时,可以使用矩阵编辑器(Matrix Editor)来创建和修改。其操作步骤如下。预先定义变量 调用矩阵编辑器之前,需要预先定义一个变量,数值变量和矩阵变量均可。A=5,6,7;8,9,10;2,3,4 定义并创建一个矩阵变量 打开工作空间窗口,6,打开矩阵编辑器 选中变量A,双击或利用快捷菜单,启动矩阵编辑器(Array Editor)。改变矩阵元素值 用户可以通过鼠称选中上图左上方文本框中的矩阵元素,输

4、入要改变的值即可。改变矩阵的维数 左上角的两个文本框分别表示矩阵的行和列,用户可以通过输入数值来改变矩阵的行和列。此项功能可以方便地创建和修改矩阵,既可以将原来的矩阵扩展为更大的矩阵,又可以将原来的矩阵裁剪为它的左上方的子矩阵。确认所有元素符合要求后,关闭该对话框,这时,便创建了一个新矩阵。在工作窗口中重新键入矩阵名,可以发现原来的矩阵已经改变。,7,(3)由函数创建和修改矩阵 MATLAB提供了大量的函数用于创建一些特殊的矩阵及其派生矩阵。zeros生成全部元素为0的零距阵(Zeros Array)A=zeros(n)生成nn零矩阵。A=zeros(m,n)或者A=zeros(m,n)生成m

5、n的零矩阵。A=zeros(m,n,p,)或者A=zeros(m n p)生成mnp的零矩阵。B=zeros(size(A)生成和矩阵A大小相等的全零矩阵。ones生成全部元素为1的距阵A=ones(n)生成nn全1矩阵。A=ones(m,n)或者A=ones(m,n)生成mn的全1矩阵。A=ones(m,n,p,)或者A=ones(m n p)生成mnp的全1矩阵。B=ones(size(A)生成和矩阵A大小相等的全1矩阵。,8,eye生成单位距阵A=eye(n)生成nn单位矩阵。A=eye(m,n)或者A=eye(m,n)生成mn的单位矩阵。B=eye(size(A)生成和矩阵A大小相等的

6、单位矩阵。rand生成均匀分布的随机矩阵A=rand(n)生成nn随机矩阵。A=rand(m,n)或者A=rand(m,n)生成mn的随机矩阵。A=rand(m,n,p,)或者A=rand(m n p)生成mnp的随机矩阵。B=rand(size(A)生成和矩阵A大小相等的随机矩阵。A=rand 不带任何参数将产生一个随机数。提示:rand函数产生一个矩阵元素在0和1之间均匀分布的随机数的随机矩阵。,9,diag 生成一个对角阵或由对角线元素组成的向量 Adiag(V)当V为n维向量时,产生一个以向量V的元素为对角线的n维数组。Adiag(V)当V为n维矩阵时,产生 一个以V矩阵的主对角线元素

7、为元素的n 维数组。注意:在MATLAB中,不需要事先定义矩阵的维数,MATLAB自动为矩阵分配存储空间。但如果在程序运行过程中采用零矩阵为矩阵生成的全部元素,或某一行、某一列的元素预先分配内存空间,将会大大加快MATLAB程序的运算速度。,10,例22 利用diag产生对角阵及对角线向量。A=rand(4,4);%创建个4阶随机矩阵B=diag(A)C=diag(B)提示:MATLAB程序中的所有内容均需用英文输入,并且变量区分大小写。否则MATLAB会给出出错信息。,11,(4)从外部数据文件调入矩阵 在MATLAB中还可以从外部数据文件中读入数据生成矩阵。数据文件可以是以前MATLAB生

8、成的矩阵存储的二进制文件,也可以是包含数值数据的文本文件。文本文件中的数据在调入之前要预先排列成矩阵的形式。调入方法:load filename.dat 或filename.txt%将数据文件filename的数据内容调入工作空间,例23 由外部数据文件直接读入数据生成一个矩阵。提示:需要调入的文件必须在MATLAB搜索路径范围内,否则找不到文件。,12,13,另外,使用Import Wizard功能,可从外部数据文件中直接读取数据。使用方法如下:选择FileImport Data 命令选项,将出现如下图所示对话框,选择将要读取数据的数据文件。选中文件,单击打开按钮,然后打开“Import W

9、izard”窗口。单击“FINISH”按钮,即可输入打开的数据文件中数据。,14,15,矩阵的保存和提取,MATLAB用Mat文件保存二进制的数据。如果有大量的矩阵或较为重要的数据需要用矩阵的形式保存和再次使用时,就需要进行矩阵的保存和提取。用save命令保存已经存在的矩阵A和B。其调用格式为:save filename A B filename是用户定义的文件名,MATLAB系统将会自动在文件名后加上后缀.MAT。用load命令将保存在文件中的矩阵读到MATLAB工作空间的内存中来。其调用格式为:load filename,16,删除矩阵的行和列,在MATLAB里,可通过把矩阵的列或行赋值为

10、空矩阵来删除某行或某列。例如:某列x(:,2)=将删除矩阵x的第二列。在MATLAB中,,可以用双下标赋值,不能用双下标来删除矩阵的某个元索。,例如:A=1 2 3;4 5 6;A(1,2)=A(1:2:5)=%删除下标为l、2、5的三个元素A(3)=,17,矩阵的加、减、乘、除和乘方运算,矩阵的加、减、乘、除利乘方运算是最基本的矩阵运算,矩阵运算按照线性代数中基本的运算法则进行。加 A+B减 A-B乘 A*B(.*是矩阵对应元素之间的乘积)除 AB转置 A注意:对于复矩阵Z,Z表示Z的复共轭转置,对于非共轭转置用Z.或conj(Z)实现。例2-4 已知z=1+i 3-2i,求:z,z.,co

11、nj(z),18,19,矩阵的其它运算,inv 矩阵求逆 det 行列式的值 eig 矩阵的特征值 diag 对角矩阵 矩阵转置 sqrt 矩阵开方,20,数组,MATLAB以一种直观处理方式处理数组。在创建数组时,以左中括号开始,以空格(或逗号)为间隔输入元素值,最后以中括号结尾。直接输入法:x=22*pi sqrt(2)2-3j 创建包含指定元素的行向量x 冒号法:x=first:increment:last 创建从first开始,加increment计数,到last的行向量 x;当increment省略时,增量为1。线性采样法x=linspace(first,last,n)创建从firs

12、t开始,到last结束,有n个元素的行向 量x对数线性采样法x=logspace(first,last,n)创建从10first开始,到10last结束,有n个元素的对数分隔行向量x。例25 创建一维数组。,简单数组的创建,21,22,简单数组的子数组寻访和赋值,所谓寻访就是要找出数组中的某个或数个元素。数组元素用下标访问,如X(n)是X的第n个元素。同时访问一块元素,用冒号来表示。例2-6 子数组的寻访。例2-7 子数组的赋值。,23,二维数组的创建、寻访及赋值,从数据结构上看,矩阵和二维数组没什么区别,当二维数组带有线性变换含义时,该二维数组就是矩阵。(1)二维数组的创建 直接输入法 利用

13、M文件创建和保存数组 例2-8用M文件创建数组。,24,数组大小MATLAB提供了函数size和length查找矩阵或数组的大小。例2-9 数组的大小。%数组大小 A=1 2 3 4;5 6 7 8s=size(A)r,c=size(A)r=size(A,1)%行数c=size(A,2)%列数length(A),25,关于矩阵和数组的详细内容请参看help帮助文档,26,练习与作业,27,多项式处理,(1)多项式的建立与表示方法在MATLAB中,多项式使用降幂系数的行向量表示,如:多项式,表示为:p=1-12 0 25 116,使用函数roots可以求出多项式等于0的根,根用列向量表示。若已知

14、多项式等于0的根,函数poly可以求出相应多项式。,例 2-10 p=1-12-0 25 116 r=roots(p)p=poly(r),28,多项式的运算,相乘conv a=1 2 3;b=1 2 c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c)相除deconv q,r=deconv(c,b)q=1 2 3 商多项式 r=0 0 0 余多项式求多项式的微分多项式polyder polyder(a)=2 2 求多项式函数值polyval(p,n):将值n代入多项式求解。polyval(a,2)=11,29,(3)*多项式的拟合 多项式拟合又

15、称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。命令格式:p=polyfit(x,y,n),其中x和y为样本点向量,n为所求多项式的阶数,p为求出的多项式。例 2-11 exp2_11.m(4)*多项式插值 多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果。该技巧在信号处理与图像处理上应用广泛。,30,所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求。Help polyfun可以得到更详细的内容。y=interp1(xs,ys,x,method)在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method中,有4种选择:nearest:执行速度最快,输出结果为直角转折 linear:默认值,在样本点上斜率变化很大 spline:最花时间,但输出结果也最平滑 cubic:最占内存,输出结果与spline差不多例 2-12 exp2_12.m,31,关于多项式的详细内容请参看help帮助文档,32,练习与作业,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号