MATLAB02矩阵与数组.ppt
《MATLAB02矩阵与数组.ppt》由会员分享,可在线阅读,更多相关《MATLAB02矩阵与数组.ppt(29页珍藏版)》请在三一办公上搜索。
1、1,第二章 矩阵与数组,MATLAB的运算事实上是以矩阵(matrix)及数组(array)方式在做运算,而这二者在MATLAB中的基本运算性质不同,矩阵采用线性代数的运算方式,而数组强调元素对元素的运算。矩阵和数组在MATLAB中的表达形式是同样的。当一个变量为矩阵或是数组时,如果是要个别键入元素,须用中括号 将元素置于其中。MATLAB以矩阵为基本的运算单位,向量和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作是只有一个元素的矩阵。,2,2.1 矩阵1.矩阵的创建(1)用直接输入法创建矩阵 当需要的矩阵维数比较小时,从键盘上直接输入一系列矩阵元素是最 直接、数值矩阵的创建方
2、法。直接输入法需遵循以下基本规则:整个矩阵应以“”为首尾,即整个输入矩阶必须包含在方括号中;矩阵中,行与行之间必须用分号(;)或Enter键(按Enter键)符分隔;每行中的元素用逗号(,)或空格分隔;矩阵中的元素可以是数字或表达式,但表达式中不可包含未知的变量,MATLAB用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何 元素时,该矩阵被称作“空阵”(Empty Matrix)。,3,例2-1 用直接输入法创建一个44的A矩阵。只要在MATLAB上作窗口中直接输入下列矩阵元素即可:A=2 3 4 5;3 4 5 6;4 5 6 7;7 8 9 10 键盘输入内容,元素之间用空格分开A=2
3、 3 4 5 3 4 5 6 4 5 6 7 7 8 9 10%键盘输入内容,行与行之间用Enter键分隔,4,注意:一旦创建了矩阵,它将被自动存储在MATLAB工作空间。矩阵中的元素可以用它的行和列表示,如A(3,2)表示矩阵A的第三行 第二列的元素。可以用对矩阵元素直接赋值的方法对矩阵进行修改。由于MATLAB的矩降定义在复数域上,因此矩阵元素可以是复数。通常 用书写复数的方法输入复数元素,或者用一个矩阵表示复数矩阵的实部,用另一个矩阵表示复数矩阵的虚部,最后将两个矩阵相加,即可得到所 需的复数矩阵。(2)由矩阵编辑器创建和修改矩阵 当需要建立的矩阵很大,不适合手工自接输入时,可以使用矩阵
4、编辑器(Matrix Editor)来创建和修改。其操作步骤如下。预先定义变量 调用矩阵编辑器之前,需要预先定义一个变量,数值变量和矩阵变量均可。A=5,6,7;8,9,10;2,3,4 定义并创建一个矩阵变量,5,打开工作空间窗口 打开矩阵编辑器 选中变量A,双击或利用快捷菜单,启动矩阵编辑器(Array Editor)。链接 改变矩阵元素值用户可以通过鼠称选中上图左上方文本框中的矩阵元素,输入要改变的值即可。改变矩阵的维数 左上角的两个文本框分别表示矩阵的行和列,用户可以通过输入数值来改变距的行和列。此项功能可以方便地创建和修改矩阵,既可以将原来的矩阵扩展为更大的矩阵,又可以将原来的矩阵裁
5、剪为它的左上方的子矩阵。确认所有元素符合要求后,关闭该对话框,这时,便创建了一个新矩阵。在工作窗口中重新键入矩阵名,可以发现原来的矩阵已经改变。,6,(3)由函数创建和修改矩阵 MATLAB提供了大量的函数用于创建一些特殊的矩阵及其派生矩阵。zeros生成全部元素为0的零距阵(Zeros Array)A=zeros(n)生成nn零矩阵。A=zeros(m,n)或者A=zeros(m,n)生成mn的零矩阵。A=zeros(m,n,p,)或者A=zeros(m n p)生成mnp的零矩阵。B=zeros(size(A)生成和矩阵A大小相等的全零矩阵。ones生成全部元素为1的距阵A=ones(n)
6、生成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矩阵。eye生成单位距阵A=eye(n)生成nn单位矩阵。A=eye(m,n)或者A=eye(m,n)生成mn的单位矩阵。B=eye(size(A)生成和矩阵A大小相等的单位矩阵。,7,rand生成均匀分布的随机矩阵A=rand(n)生成nn随机矩阵。A=rand(m,n)或者A=rand(m,n)生成mn的随机矩阵。A=rand(m,n,p,)或者A=rand(m n p)生
7、成mnp的随机矩阵。B=rand(size(A)生成和矩阵A大小相等的随机矩阵。A=rand 不带任何参数将产生一个随机数。提示:rand函数产生一个矩阵元素在0和1之间均匀分布的随机数的随机矩阵。diag 生成一个对角阵或由对角线元素组成的向量 Adiag(V)当V为n维向量时,产生一个以向量V的元素为对角线的n维数组。Adiag(V)当V为n维矩阵时,产生 一个以V矩阵的主对角线元素为元素的n 维数组。注意:在MATLAB中,不需要事先定义矩阵的维数,MATLAB自动为矩阵分配存 储空间。但如果在程序运行过程中采用零矩阵为矩阵生成的全部元素,或某一行、某一列的元素预先分配内存空间,将会大大
8、加快MATLAB程序的运算速度。,8,例22 利用diag产生对角阵及对角线向量。链接A=rand(4,4);%创建个4阶随机矩阵B=diag(A)C=diag(B)提示:MATLAB程序中的所有内容均需用英文输入,并且变量区分大小写。否 则MATLAB会给出出错信息。(4)从外部数据文件调入矩阵 在MATLAB中还可以从外部数据文件中度读入数据生成矩阵。数据文件可以是以前MATLAB生成的矩阵存储的二进制文件,也可以是包含数值数据的文本文件。文本文件中的数据在调入之前要预先排列成矩阵的形式。调入方法:load filename.dat 或filename.txt%将数据文件filename的
9、数据内容调入工 作空间例23 由外部数据文件直接读入数据生成一个矩阵。链接提示:需要调入的文件必须在MATLAB搜索路径范围内,否则找不到文件。,9,另外,使用Import Wizard功能,可从外部数据文件中直接读取数据。,使用方法如下:选择FileImport Data 命令选项,将出现如下图所示对话框,选择将要读取数据的数据文件。链接选中文件,单击打开按钮,然后打开“Import Wizard”窗口。单击“FINISH”按钮,即可输入打开的数据文件中数据。链接2.矩阵的保存和提取MATLAB用Mat文件保存二进制的数据。如果有大量的矩阵或较为重要的数据需要用矩阵的形式保存和再次使用时,就
10、需要进行矩阵的保存和提取。用save命令保存已经存在的矩阵A和B。其调用格式为:save filename A B filename是用户定义的文件名,MATLAB系统将会自动在文件名后加上后缀.MAT。,10,用load命令将保存在文件中的矩阵读到MATLAB工作空间的内存中来。共调用格式为:load filename3.矩阵元素的标识 矩阵是MATLAB的基本运算单元,向量和标量都作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作只有一个元素的矩阵。(1)向量的生成MATLAB有多种方法生成向量,除了在命令窗口中直接输入之外,还有三种常用的自动创建向量的方法,即利用冒号、linsp
11、ace函数和logspace函数生成向量。利用冒号生成向量冒号具有多种功能,在用于生成向量时,使用以下格式:x=i:j 如果ij,则生成x空向量。x=i:j:k 如果j0,且ik,则生成向量x=i,i+j,i+2j,.,k;如果j0,且ik或j0且ik,则生成向量x为空向量。,11,例24 利用冒号生成向量。链接a=1:6;b=2:2:10;c=8:-1:2;c1=8:1:4;c1=Empty Matrix:1-by-0,说明c1生成的是空向量。利用linspace生成向量linspace函数生成等差向量,其功能类似于冒号算子x=i:j,调用格式如下:x=linspace(a,b)生成有100
12、个元素的行向量x,其元素值在a、b之间线性分布。x=linspace(a,b,n)生成有n个元素的行向量x,其元素值在a、b之间线性分布。利用logspace生成向量logspace生成等比向量,其用法与linspace相同。,12,x=logspace(a,b)生成有50个元素的行向量x,其元素起点x(1),终点x(50)=。x=logspace(a,b,n)生成有n个元素的行向星x,其元素起点x(1),终点x(50)。例25 利用linspace函数生成等差向量,利用logspace函数生成等比向量。a=linspace(1.5,6.0,5)%元素值在1.5和6.0之间的5个数b=logs
13、pace(0,2,4)%元素值在 和 之间的4个数链接(2)矩阵下标的引用 在MATLAB中,矩阵元素的引用可以用两个下标来表示,如在矩阵A中,第i行第j列的元素用A(i,j)表示;也可以用一个下标来表示。用单个下标表示元素并不只限于向量。对于矩阵,由于MATLAB的运算基本上都是对列操作的,矩阵可以认为是按列优先排列的一个长的列向量,从而可用单下标引用。例如2x2的矩阵A,A(1)表示第一列的第一个元素,A(2)表示第一列的第二个元素,A(3)表示第二列的第一个元素,A(4)表示第二列的第二个元素。,13,当矩阵的下标超出矩阵的实际元素的下标时,将给出错误信息。但当某个值被赋给矩阵的一个新的
14、元素时,MATLAB会自动增加矩阵的维数大小。例如:链接44的矩阵A,执行命令A(4,5)18后,矩阵A将变成45的矩阵。A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A(4,5)=18;(3)删除矩阵的行和列 在MATLAB里,可通过把矩阵的列或行赋值为空矩阵来删除某行或某列。例如:某列x(:,2)=将删除矩阵x的第二列。在MATLAB中,,可以用双下标赋值,不能用双下标来删除矩阵的某个元索。例如:当矩阵A不为标量时,运行命令x(1,2)将给出错误信息。但可用单下标来删除矩阵的某个或某些元素,并将剩下的元素按列编成个长行向量。,14,例如;链接A=1 2 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB02 矩阵 数组

链接地址:https://www.31ppt.com/p-6511679.html