第4章__MATLAB7.0的矩阵和数组

合集下载

Matlab——数组与矩阵

Matlab——数组与矩阵

Matlab——数组与矩阵1 一维数组(向量)的创建1.1 直接输入法从键盘直接输入元素,列与列之间的数据用逗号或空格分隔,行与行之间的数据用分号分隔。

a=[1;2;3] 生成列向量b=[1,2,3] 生成行向量c=[1 2 3] 生成行向量说明:在一行中写多条语句时,逗号和分号可作为语句间的分隔符。

如果用分号,则命令窗不显示运行结果。

1.2 冒号生成法用于产生递增或递减的等差数列。

格式:初值:步长:终值说明:步长为1时可以省略。

a=1:2:6b=1:61.3 定数线性采样法用于产生起止于两点之间的n 个数据点。

格式:x = linspace(a,b,n)b= linspace(1,6,6) b=1:6说明:n 的默认值是100。

1.4 拼接法利用已有的一维数组创建新的一维数组。

将两个行向量或列向量拼接为一个行向量或列向量,也可以利用冒号抽取其中的部分数据生成新的一维数组。

行向量拼接:用方括号和逗号a3= [a1,a2]列向量拼接:用方括号和分号b3= [b1;b2]向量的抽取:用冒号a4= a3(1:2:end)抽取a3 中的奇数位置的元素组成新的数组例1 创建两个不同的一维行向量和列向量,并利用这两个向量拼接成一个新的行向量和列向量,然后再由新向量中的奇数位置元素组成新的向量。

x1= 1:3x2= linspace(5,20,4)x= [x1,x2]y1=[1:3]’y2= linspace(5,20,4)’y= [y1;y2]x3= x ( 1:2:end)y3= y ( 1:2:end)2 一维数组中元素的提取利用圆括号和索引号。

A= [1 2 3 4 5]a3=A(3)提取第3个元素3 二维数组(矩阵)的创建3.1 直接输入法从键盘直接输入元素。

输入规则如下:(1)矩阵元素必须在方括号内;(2)同行元素之间用空格或逗号隔开;(3)行与行之间用分号或回车符隔开;(4)元素可以是数值、变量、表达式或函数;(5)矩阵的维数不必预先定义。

数组和矩阵的关系 MATLAB

数组和矩阵的关系 MATLAB

数组和矩阵的关系摘要:数组和矩阵式MATLAB中基本的数据存在形式。

一方面,数组是数据结构中的概念,有利于计算机实现层次上的计算;另一方面,矩阵是线性代数中的概念,有利于数学层次上的计算。

关键词:数组,矩阵,MATLAB我们可以确定数组与矩阵之间的关系:(1)一维数组可以表示行向量或列向量;(2)二维数组可以表示为矩阵。

所以,矩阵运算可以看作是基于数组实现的高级运算。

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,即把有限个类型相同的变量用一个名字命名,用编号区分每个元素的变量的集合,这个名字称为数组名,编号称为下标。

组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

我们必须清楚,数组是用于程序设计的数据结构中的概念,并不是数学上的概念,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。

为了实现某种数学运算,可以使用数组来描述某种类型的变量。

简而言之,数组的运算是对所有元素进行相同运算。

一,数组与矩阵的创建直接输入法是创建数组最简单的方法。

而且此方法可以自由指定元素的数值。

采用基本规则是:(1)所有元素必须用方括号“[ ]”括起来;(2)元素之间必须用逗号“,”或空格“”分割;(3)每个元素可以用MATLAB表达式表示,既可以是实数,也可以是复数。

通常,很多数组依赖数据最大值和最小值来产生数组的元素。

区间限定法可以代替直接输入法中由用户计算元算的过程,依据指定数据的最大值last和最小值first 自动生成数组的每个元素。

与一维数组相比,二维数组增加了一个维度,所以创建方法有所不同。

直接输入法的使用增加了一个新规则:在方括号“[ ]”内的行与行之间必须用分号“;”分隔。

区间限定法也可以直接用于二维数组的创建。

与数组的创建相似,矩阵的创建可以采用直接输入法。

矩阵创建的基本规则是(1)所有元素必须用方括号“[ ]”括起来;(2)在[ ]内矩阵的行与行之间必须用分号“;”分隔;(3)元素之间必须用逗号“,”分隔;(4)每个元素可以用MATLAB表达式表示,既可以是实数,也可以是复数。

Matlab矩阵和数组的操作

Matlab矩阵和数组的操作
对于p的其它值,计算将涉及特征值和特征向量, 如A , p 都是矩阵, A ^ p 则无意义。
>>A=[1, 2, 3;2, 3, 1;3, 2,1] >>B=A^2 >>C=A^0.3
>>Z = zeros(2,4) Z= 0 0 0 0
>>F = 5*ones(3,3) F= 5 5 5
0 0 0 0
5 5 5
5 5 5
>>R = randn(4,4) R= 1.0668 0.2944 -0.6918 -1.4410 >>N = fix(10*rand(1,10)) N=
0.0593 -1.3362 0.8580 0.5711
3. 利用矩阵编辑器 Array Editor
先在命令窗口输入: >>A=1 在 Workspace 窗口,双击该变量,打开矩阵编 辑器,进行输入和修改。
4.利用MATLAB函数建立矩阵
几个产生特殊矩阵的函数: zeros 、 ones 、 eye 、 rand、randn。 这几个函数的调用格式相似,下面以产生零矩 阵的zeros函数为例进行说明。其调用格式是: zeros(m) 产生m×m零矩阵 zeros(m,n) 产生m×n零矩阵。 zeros(size(A)) 产生与矩阵A同样大小的零矩阵 相关的函数有: length(A) 给出行数和列数中的 较 大 者 , 即 length(A)=max(size(A)) ; ndims(A) 给出A的维数, size(A)多维矩阵各维长度
/(右除): A/B表示B右除A
设A是可逆矩阵的运算, AX=B的解是A左除B,
即X= A\B; XA=B的解是A右除B,即X=B /A

matlab中的矩阵运算和数组运算方法

matlab中的矩阵运算和数组运算方法

matlab中的矩阵运算和数组运算方法MATLAB 具有两种不同类型的算术运算:数组运算和矩阵运算。

您可以使用这些算术运算来执行数值计算,例如两数相加、计算数组元素的给定次幂或两个矩阵相乘。

矩阵运算遵循线性代数的法则。

数组运算则是执行逐元素运算并支持多维数组。

句点字符(.) 将数组运算与矩阵运算区别开来。

但是,由于矩阵运算和数组运算在加法和减法的运算上相同,因此没有必要使用字符组合 .+ 和 .-。

数值运算加法,例如A+B,+B减法,例如A-B,-B按元素乘法。

点乘,A.*B 表示 A 和 B 的逐元素乘积。

按元素求幂,A.^B 表示包含元素 A(i,j) 的 B(i,j) 次幂的矩阵。

数组右除,A./B 表示包含元素 A(i,j)/B(i,j) 的矩阵。

数组左除,A.\B 表示包含元素 B(i,j)/A(i,j) 的矩阵。

数组转置,A.' 表示 A 的数组转置。

对于复矩阵,这不涉及共轭。

矩阵运算矩阵乘法,C = A*B 表示矩阵 A 和 B 的线性代数乘积。

A 的列数必须与 B 的行数相等。

矩阵左除,x = A\B 是方程 Ax = B 的解。

矩阵 A 和 B 必须拥有相同的行数。

A\B = inv(A)*B矩阵右除,x = B/A 是方程 xA = B 的解。

矩阵 A 和 B 必须拥有相同的列数。

有B/A = (A'\B')'。

矩阵幂,A^B 表示 A 的 B 次幂(如果 B 为标量)。

对于 B 的其他值,计算包含特征值和特征向量。

转置,A' 表示 A 的线性代数转置。

对于复矩阵,这是复共轭转置。

逆矩阵,inv(A)或者A^(-1),A必须是方矩阵,也就是需要行列数相等。

行列式值,det(A)说明当方程形式是Ax=B时,则x=A\B=inv(A)*B;当方程形式是xA=B时,则x=B/A=B*inv(A);其中inv()是求逆矩阵。

matlab实验矩阵和数组的操作

matlab实验矩阵和数组的操作

实验二矩阵和数组的操作一、实验环境计算机MATLAB软件二、实验目的1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。

2.学习矩阵和数组的加减运算与乘法、3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。

三、实验内容与步骤1.用三种方法创建一个3X3矩阵,然后利用矩阵编辑器,将其扩充为4X5矩阵,并保存,试着调用它。

程序如下(1)直接输入法>> A=[3,2,1;4,5,6;7,8,9]A =3 2 14 5 67 8 9(2)利用MA TLAB提供的函数创建一个3X3的矩阵>> A=rand(3,3)A =0.4103 0.3529 0.13890.8936 0.8132 0.20280.0579 0.0099 0.1987(3)利用MA TLAB提供的“Matrix Editor”完成输入>> A=1A =1在矩阵编辑器中得如此矩阵1 0 00 0 00 0 0该成4X5 矩阵后如下1 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0修改元素后为1 2 3 4 50 9 8 7 611 12 13 14 1510 19 18 17 16对文件进行保存使用save data 命令,用load data 命令刻把保存在文件的矩阵读到MATLAB的工作区的内存来2、建立一个等差数列,然后由它产生一个对角阵。

操作如下>> a=linspace(0,1.5,5)a =0 0.3750 0.7500 1.1250 1.5000>> B=diag(a)B =0 0 0 0 00 0.3750 0 0 00 0 0.7500 0 00 0 0 1.1250 00 0 0 0 1.50003、利用MATLAB的函数inv(A)求方阵A的逆矩阵。

操作如下>> A=[1,2;5,6]A =1 25 6>> B=inv(A)B =-1.5000 0.50001.2500 -0.2500四、练习1、创建一个5X5矩阵,提取主对角线以上的部分>> B=rand(5,5)B =0.0971 0.0344 0.1869 0.7547 0.11900.8235 0.4387 0.4898 0.2760 0.49840.6948 0.3816 0.4456 0.6797 0.95970.3171 0.7655 0.6463 0.6551 0.34040.9502 0.7952 0.7094 0.1626 0.5853 >> U=triu(B)U =0.0971 0.0344 0.1869 0.7547 0.11900 0.4387 0.4898 0.2760 0.49840 0 0.4456 0.6797 0.95970 0 0 0.6551 0.34040 0 0 0 0.5853 2、A=rand(3,3),B=magic(3,3),C=rand(3,4),计算AXBXC >> A=rand(3,3)A =0.1493 0.2543 0.92930.2575 0.8143 0.35000.8407 0.2435 0.1966>> B=magic(3)B =8 1 63 5 74 9 2>> C=rand(3,4)C =0.2511 0.3517 0.5497 0.75720.6160 0.8308 0.9172 0.75370.4733 0.5853 0.2858 0.3804>> A.*B.*C??? Error using ==> timesMatrix dimensions must agree.>> A*B*Cans =9.5982 12.7780 13.3892 13.39619.8497 12.9393 12.3754 13.12937.8080 10.2588 10.0835 11.84363.创建一个3X3的矩阵,并求其转置,逆矩阵>> D=rand(3,3)D = 0.5678 0.5308 0.12990.0759 0.7792 0.56880.0540 0.9340 0.4694>> E=conj(D)'E =0.5678 0.0759 0.05400.5308 0.7792 0.93400.1299 0.5688 0.4694>> F=inv(D)F =1.7826 1.3763 -2.16120.0529 -2.7944 3.3717-0.3102 5.4022 -4.33034、用两种方法求Ax=b的解(A为随机矩阵,b为四阶列向量)。

Matlab实验报告(二)矩阵和数组操作

Matlab实验报告(二)矩阵和数组操作

Matlab实验报告(二)矩阵和数组操作一、实验目的1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。

2.学习矩阵和数组的加减运算与乘法。

3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。

二、预备知识1.常用的产生特殊矩阵的函数?eye(m,n) 单位阵?rand(m,n) 随机矩阵?randn(m,n) 正态分布的随机矩阵?zeros(m,n) 零矩阵?ones(m,n) 全部元素都为1的矩阵?compan(A) 矩阵A的伴随矩阵?bankel(m,n) n维Hankel矩阵?invhilb(n) n维逆Hilbert矩阵?magic(n) n维Magic矩阵?toeplitz(m,n) Toeplitz矩阵?wilkinson(n) n维Wilkinson特征值测试矩阵?handamard(n) n 维Handamard矩阵?hilb(n) n维Hilbert矩阵?kron(A,B) Kronecker 张量积?pascal(n) n维Pascal矩阵?vander(A) 由矩阵A产生Vandermonde矩阵2.通过矩阵的结构变换,获得新矩阵表2 矩阵结构变化产生新矩阵L=tril(A) L=tril(A,k) 0 U=triu(A) U主对角线及以上的元素取矩阵A的元素,其余为0 L主对角线及以下元素取矩阵A 的元素,其余为0 L及第k条对角线及以下元素取矩阵A的元素,其余为U=triu(A,k) 0 B=rot90(A) B=rot90(A,k) B=fliplr(A) B=flipud(A) B=reshape(A,m,n) U 第k条对角线及以上的元素取矩阵A的元素,其余为矩阵A逆时针旋转90°得到B 矩阵A逆时针旋转k*90°得到B 矩阵A左右翻转得到B 矩阵A上下翻转得到B 将矩阵A的元素重新排列,得到m*n的新矩阵(m*n就等于A的行列式之积。

Matlab矩阵运算与数组运算参考资料

一Matlab矩阵运算与数组运算实验目的:1.理解矩阵及数组概念.2.掌握Matlab对矩阵及数组的操作命令.实验内容:1.矩阵与数组的输入.对于较小较简单的矩阵,从键盘上直接输入矩阵是最常用的数值矩阵创建方法.用这种方法输入矩阵时注意以下三点:(1)整个输入矩阵以方括号“[ ]”为其首尾;(2)矩阵的元素必须以逗号“,”或空格分隔;(3)矩阵的行与行之间必须用分号“;”或回车键隔离.例1:下面的指令可以建立一个3行4列的矩阵a.a=[1 2 3 4;5 6 7 8;9 10 11 12]↵(下面是屏幕的显示结果)a =1 2 3 45 6 7 89 10 11 12注:分号“;”有三个作用:(1)在“[ ]”方括号内时它是矩阵行间的分隔符.(2)它可用作指令与指令间的分隔符.(3)当它存在于赋值指令后,该指令执行后的结果将不显示在屏幕上.例如,输入指令:b=[1 2 0 0;0 1 0 0;1 1 1 1];矩阵b将不显示,但b已存放在Matlab 的工作内存中,可随时被以后的指令所调用或显示.例如,输入指令:b↵结果为:b =1 2 0 00 1 0 01 1 1 1数值矩阵的创建还可由其他方法实现.如:利用Matlab函数和语句创建数值矩阵;利用m文件创建数值矩阵;从其他文件获取数值矩阵.有兴趣的读者可参阅其他参考书.数组可以看成特殊的矩阵,即1行n列的矩阵,数组的输入可以采用上面矩阵的输入方法.例2:输入以下指令以建立数组c.c=[1 2 3 4 5 6 7 8]↵c =1 2 3 4 5 6 7 8另外还有两种方法输入数组.请看下面两个例子.例3:在0和2中间每隔0.1一个数据建立数组d.解:输入指令:d=0:0.1:2↵d =Columns 1 through 70 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000Columns 8 through 140.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000Columns 15 through 211.4000 1.5000 1.6000 1.7000 1.8000 1.90002.0000例4:在0和2之间等分地插入一些分点,建立具有10个数据点的数组e . 解:输入指令:e=linspace(0,2,10) ↵e =Columns 1 through 70 0.2222 0.4444 0.6667 0.8889 1.1111 1.3333 Columns 8 through 101.5556 1.77782.0000注:linspace(a ,b ,n)将建立从a 到b 有n 个数据点的数组.2.常用矩阵的生成.Matlab 为方便编程和运算,提供了一些常用矩阵的生成指令:eye(n) n n ⨯单位矩阵ones(n) n n ⨯全1矩阵zeros(n) n n ⨯零矩阵eye(m ,n) n m ⨯标准型矩阵ones(m ,n) n m ⨯全1矩阵zeros(m ,n) n m ⨯零矩阵eye(size(A)) 与A 同型的标准型矩阵ones(size(A)) 与A 同型的全1矩阵zeros(size(A)) 与A 同型的零矩阵注:其中指令size(A)给出矩阵A 的行数和列数.例5:生成以下矩阵.(1)33⨯零矩阵.(2)63⨯全1矩阵.(3)与例1中矩阵a 同型的标准型矩阵.解:输入下面指令:d=zeros(3) ↵d =0 0 00 0 00 0 0e=ones(3,6) ↵e =1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1f=eye(size(a)) ↵f =1 0 0 00 1 0 00 0 1 03.矩阵元素的标识.矩阵的元素、子矩阵可以通过标量、向量、冒号的标识来援引和赋值.(1)矩阵元素的标识方式A(ni ,nj).ni ,nj 都是标量.若它们不是整数,则在调用格式中会自动圆整到最临近整数.ni 指定元素的行位置,nj 指定元素的列位置.(2)子矩阵的序号向量标识方式A(v ,w).v,w是向量,v,w中的任意一个可以是冒号“:”,表示取全部行(在v位置)或全部列(在w位置).v,w中所用序号必须大于等于1且小于等于矩阵的行列数.例6:元素和矩阵的标识a=[1 2 3 4;5 6 7 8;9 10 11 12]↵a =1 2 3 45 6 7 89 10 11 12a24=a(2,4)↵a24 =8a1=a([1,2],[2,3,4])↵a1 =2 3 46 7 8a2=a([1,2],[2,3,1])↵a2 =2 3 16 7 5a3=a([3,1],:)↵a3 =9 10 11 121 2 3 4a([1,3],[2,4])=zeros(2)↵a =1 0 3 05 6 7 89 0 11 04.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.A+B 两个同型矩阵A与B相加.A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量).s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).s*A 数与矩阵A相乘.例7:a=[1 2 3;4 5 6]↵a =1 2 34 5 6b=[-1 0 1;3 1 2]↵b =-1 0 13 1 2a'↵ans =1 42 53 6a+b↵ans =0 2 47 6 8a-b↵ans =2 2 21 4 41+a↵ans =2 3 45 6 7a-1ans =0 1 23 4 52*b↵ans =-2 0 26 2 4c=[2 4;1 3;0 1]↵c = 2 41 30 1a*c↵ans = 4 1313 37数组可以看成特殊矩阵即一行n列的矩阵,矩阵运算的指令和含意同样适用于数组运算.如果在运算符前加“.”,其意义将有所不同.A.*B 同维数组或同型矩阵对应元素相乘.A./B A的元素被B的元素对应除.A.^n A的每个元素n次方.p.^A 以p为底,分别以A的元素为指数求幂.例8:a=[1 2 3;4 5 6]↵a =1 2 34 5 6b=[-1 0 1;3 1 2]↵b =-1 0 13 1 2a.*b↵ans =-1 0 312 5 12a./b↵Warning: Divide by zero.ans =-1.0000 Inf 3.00001.3333 5.0000 3.0000a.^2↵ans =1 4 916 25 362.^a↵ans =2 4 816 32 64二矩阵与线性方程组实验目的:1.掌握Matlab求矩阵的秩命令.2.掌握Matlab求方阵的行列式命令.3.理解逆矩阵概念,掌握Matlab求逆矩阵命令.4.会用Matlab求解线性方程组.实验内容:1.矩阵的秩.指令rank(A)将给出矩阵A的秩.例1:a=[3 2 -1 -3 -2;2 -1 3 1 -3;7 0 5 -1 -8]↵a =3 2 -1 -3 -22 -13 1 -37 0 5 -1 -8rank(a)↵ans =22.方阵的行列式.指令det(A)给出方阵A的行列式.例2:b=[1 2 3 4;2 3 4 1;3 4 1 2;4 1 2 3];det(b)↵ans =160det(b')↵ans =160c=b;c(:,1)=2*b(:,1);det(c)↵ans =320det(b(:,[3 2 1 4]))↵ans =-160d=b;d(2,:);det(d)↵ans =160注:在这里我们实际上验证了行列式的性质.你能否给出上例运算结果的一个解释?3.逆矩阵.指令inv(A)给出方阵A的逆矩阵,如果A不可逆,则inv(A)给出的矩阵的元素都是Inf.例3:设123221343A⎛⎫⎪= ⎪⎪⎝⎭,求A的逆矩阵.解:输入指令:A=[1 2 3;2 2 1;3 4 3]; B=inv(A)↵B =1.0000 3.0000 -2.0000-1.5000 -3.0000 2.50001.0000 1.0000 -1.0000还可以用伴随矩阵求逆矩阵,打开m文件编辑器,建立一个名为company-m的M-文件文件内容为:function y=company-m(x)[n,m]=size(x);y=[];for j=1:n;a=[];for i=1:n;x1=det(x([1:i-1,i+1:n],[1:j-1,j+1:n]))*(-1)^(i+j);a=[a,x1];endy=[y;a];end利用该函数可以求出一个矩阵的伴随矩阵.输入命令:C=1/det(A)*company-m(A)↵C =1.0000 3.0000 -2.0000-1.5000 -3.0000 2.50001.0000 1.0000 -1.0000利用初等变换也可以求逆矩阵,构造n行2n列的矩阵(A E),并进行行初等变换,当把A变为单位矩阵时,E就变成了A的逆矩阵.利用Matlab命令rref可以求出矩阵的行简化阶梯形.输入命令:D=[A,eye(3)]↵D =1 2 3 1 0 02 2 1 0 1 03 4 3 0 0 1rref(D)↵ans =1.0000 0 0 1.0000 3.0000 -2.00000 1.0000 0 -1.5000 -3.0000 2.50000 0 1.0000 1.0000 1.0000 -1.0000m n⨯线性方程组AX B=的求解是通过矩阵的除法来完成的,\X A B=,当m n=且A可逆时,给出唯一解.这时矩阵除\A B相当于()inv A B*;当n m>时,矩阵除给出方程的最小二乘意义下的解;当n m<时,矩阵除给出方程的最小范数解.例4:12341234123134212121x x x xx x x xx x xx x x-++=⎧⎪+-+=⎪⎨++=⎪⎪+-=⎩求解方程组:解:输入命令:a=[1 -1 1 2;1 1 -2 1;1 1 1 0;1 0 1 -1];b=[1;1;2;1];x=a\b↵x =0.83330.75000.41670.2500或者输入命令:z=inv(a)*b ↵z =0.83330.75000.41670.2500例5:解方程组:⎪⎩⎪⎨⎧=-++-=-++-=--++8343242222543215432154321x x x x x x x x x x x x x x x解:方程的个数和未知数不相等,用消去法,将增广矩阵化为行简化阶梯形,如果系数矩阵的秩不等于增广矩阵的秩,则方程组无解;如果系数矩阵的秩等于增广矩阵的秩,则方程组有解,方程组的解就是行简化阶梯形所对应的方程组的解.输入命令:a=[2 1 1 -1 -2 2;1 -1 2 1 -1 4;2 -3 4 3 -1 8];rref(a) ↵ans =1 0 0 0 0 00 1 0 -1 -1 00 0 1 0 -1 2从结果看出,4x ,5x 为自由未知量,方程组的解为:01=x542x x x +=532x x +=例6:解方程组:⎪⎪⎩⎪⎪⎨⎧=+--=--=-+-=+--0320030432142143214321x x x x x x x x x x x x x x x解:输入命令:a=[1 -1 -1 1;1 -1 1 -3;1 -1 0 -1;1 -1 -2 3];rref(a) ↵ans =1 -1 0 -10 0 1 -20 0 0 00 0 0 0由结果看出,2x ,4x 为自由未知量,方程组的解为:421x x x +=432x x =。

Matlab常用函数、数组及矩阵的基本运算

实验一 Matlab 常用函数、数组及矩阵的基本运算一、 实验目的1. 了解Matlab7.0软件工作界面结构和基本操作;2. 掌握矩阵的表示方法及Matlab 常用函数;3. 掌握数组及矩阵的基本运算. 二、 实验内容1. 了解命令窗口(command widow)和变量空间(workspace)的作用,掌握清除命令窗口(clc )和变量空间(clear)的方法.掌握查询函数(help)的方法.2. 掌握保存和加载变量的方法. 加载变量:load 变量名.3. 掌握掌握矩阵的表示方法: 给a,b,c 赋如下数据:]6,46,23,4,2,6,3,8,0,1[,3568382412487,278744125431-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=c b a4. 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果.5. 将str1=electronic; str2 = information; str3 = engineering; 三个字符串连接在一起成str = electronic information engineering. 6. 求矩阵a 的逆矩阵a -1,行列式计算。

(inv(a),det(a)) 三、 实验要求1.上机操作,熟练掌握清除命令窗口和变量空间的方法、查询变量的方法、加载变量的方法。

2.第2道题请写出步骤。

3.对实验内容中第3-6项,写出指令,上机运行. 记录运行结果(数据)。

4.写出实验报告。

四、 实验结果2. 用save 函数,可以将工作空间的变量保存成txt 文件或mat 文件等. 比如: save peng.mat p j就是将工作空间中的p 和j 变量保存在peng.mat 中. 用load 函数,可以将数据读入到matlab 的工作空间中. 比如:load peng.mat就是将peng.mat 中的所有变量读入matlab 工作空间中。

matlab 矩阵与数组解析

19
3.3.1 多项式表示法
多项式表示:
行向量——其中元素按多项式降 幂排列。
例如: f(x)=anxn+an-1xn-1+……+a0 行向量: [ an an-1 …… a0 ]
函数 poly2str() 将多项式系 数向量转换为完整形式。
[f,len]=poly2str(A,’x’);
2
3.1 矩阵运算
3.1.1 矩阵加、减(+,-)运算 3.1.2 矩阵乘(*)运算 3.1.3 矩阵除(/,\)运算 3.1.4 矩阵乘方—— A^n,a^p 3.1.5 矩阵关系运算符 3.1.6 矩阵逻辑运算符
3
3.1.1 矩阵加、减(+,-)运算
两矩阵对应元素相加减。 标量可以和任意矩阵相加减,且与所有元素分
12
3.2.1 数组加减(+,-)
对应元素相加减(与矩阵加减等效)
13
3.2.2 数组乘除(*,./,.\)
数组乘(.*)点乘
数组对应元素相乘 数组必须有相同的行和列
14
3.2.2 数组乘除(,./,.\)
A./B =B.\A —— A的元素被B的对应元素除 B./A =A.\B —— B的元素被A的对应元素除
10
3.1.6 矩阵逻辑运算符
比特方式逻辑运算符只接受逻辑和非负 整数类型的输入变量,它是针对输入变 量的二进制表示进行逻辑运算。
11
3.2 数组运算 数组运算指矩阵元素和元素之间
的算术运算 3.2.1 数组加减(+,-) 3.2.2 数组乘除(,/,\) 3.2.3 数组乘方(^) 3.2.4 运算优先级
矩阵与标量关系:标量与矩阵的所有元素进行 运算。
8
3.1.5 矩阵关系运算符

matlab矩阵的数组

matlab矩阵的数组全文共四篇示例,供读者参考第一篇示例:MATLAB是一款非常强大的数学软件,它在科学计算和工程领域得到了广泛应用。

在MATLAB中,矩阵和数组是非常重要的概念,它们可以用来储存和处理各种数据。

矩阵和数组之间有一些区别,但在很多情况下可以混用。

本文将重点介绍MATLAB中矩阵和数组的基本概念和使用方法。

让我们来看看MATLAB中的数组。

数组是MATLAB中的基本数据类型,可以用来表示一维、二维或者多维的数据。

在MATLAB中,用方括号“[]”来表示数组,元素之间用逗号分隔。

下面是一个一维数组:```matlabA = [1, 2, 3, 4, 5];```上面的代码定义了一个名为A的一维数组,包含了5个元素。

我们也可以定义一个二维数组,例如:上面的代码定义了一个名为B的二维数组,包含了3行3列共9个元素。

在MATLAB中,数组可以有不同的数据类型,包括整数、浮点数、逻辑值等。

除了使用方括号来定义数组,MATLAB中还有一些快捷方式来生成数组。

我们可以使用冒号操作符“:”来生成一定范围内的数组。

下面是一些例子:```matlabC = 1:5; % 生成1到5的一维数组D = 0:0.5:2; % 生成0到2的步长为0.5的一维数组E = linspace(0, 1, 5); % 生成0到1之间5个均匀间隔的一维数组```除了基本的数组操作外,MATLAB还提供了丰富的函数和工具来处理数组。

我们可以使用MATLAB内置的函数来对数组进行排序、求和、平均值等操作。

MATLAB还支持向量化运算,这意味着我们可以直接对整个数组进行操作,而不需要使用循环。

这样不仅可以提高运算速度,还能使代码更简洁易懂。

接下来,让我们来看看MATLAB中的矩阵。

矩阵是二维数组的特例,它在数学和工程计算中有着重要的地位。

在MATLAB中,矩阵和数组的区别在于,矩阵必须是二维的,而且只能包含数值类型的元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.8 高维数组
在MATLAB中,维数超过二维的数组称为高维数组。之前的章节介绍 过,矩阵可以理解成二维的数组,本书所讨论的数组大多数情况下 都是二维的数组,即矩阵,对于矩阵,“行”和“列”分别是矩阵 的第一维和第二维;而对于高维数组,只有第三维具有统一的名称, 称为“页”(page),更高维称呼至今仍未统一。在进行高维数组 操作的时候,首先要有一定的几何空间意识,如果说对于二维的矩 阵的处理是着眼于平面“矩形”的话,那么对于三维数组的理解就 要面对一个立体的、截面是矩形的“长方体”。 尽管高维数组可以是任意维数,但为了方便讲解的直观和读者理解 的方便,本节主要以三维数组为例,一个三维的数组由行、列和页 三维组成,每一页都是一个由行和列来构成的二维的矩阵,正如二 维数组所有的列必须包含相同的行一样,三维数组的所有的页也要 包含相同的行和列,且所有矩阵满足的操作都可以运用于高维数组 上。本节主要介绍高维数组的生成和基本操作。
4.5.1 向量
向量是行数或列数为1的特殊矩阵,其一般显示为1×n或 n×1的数列。用户在构造新矩阵,以及对矩阵进行访问、 修改等操作时,常用到向量数列。MATLAB提供了生成等 差向量数列的符号—冒号,例如,(p:q)生成从p到q, 差为1的递增向量数列。例如,创建10~1的等差递减数 列,在命令窗口输入代码及执行结果如下。 >> v=(10:-1:1) v= 10 9 8
4.2 拼接矩阵
矩阵的拼接是指两个或者两个以上的单个矩阵, 按一定的方向进行连接,生成新的矩阵。从本 质上说,矩阵的拼接就是一种创建矩阵的特殊 方法,区别在于基础元素是原始矩阵,目标是 新的合并矩阵。本节主要介绍矩阵拼接的两种 方法,一是利用矩阵生成符[],另一种是调用 矩阵拼接函数。
4.2.1 基本拼接
4.3 改变矩阵尺寸
矩阵的尺寸又称矩阵的大小。在MATLAB7.0中, 用户可以方便地对矩阵的尺寸进行扩大和缩小, 扩大矩阵的主要方式是拼接和添加元素,缩小 矩阵的方式是删除矩阵中的某行或某列元素。
4.3.1 扩大矩阵的尺寸
在MATLAB7.0中,用户可以通过两种方式扩大矩 阵的尺寸,一是进行矩阵拼接,二是在矩阵的 尺寸之外添加元素。前者本书4.2节已经作了介 绍,本小节主要介绍后一种方法。
4.6.2 访问单元素
访问一个矩阵中的单个元素,必须指定两个参 数,即其所在行数和列数。例如,访问矩阵A中 的任何一个单元素,代码如下所示,row和 column分别代表行数和列数。 A(row,column)
4.6.3 访问多元素
访问矩阵的多元素,包括访问某一行或某一列的若干元 素,访问整行、整列元素,访问若干行或若干列的元素 以及访问矩阵所有元素等。首先,介绍在访问矩阵多元 素时常用的一个符号—冒号。本书之前的章节介绍过, 冒号可以表示等差步进,从而帮助生成向量矩阵。其实 冒号还有另外一个重要的功能,即表示矩阵中的多个元 素。例如A(1:k,n)表示矩阵A中第n列的1~k的元素, B(m,:)表示矩阵B中第m行的所有元素,在对矩阵中某部 分元素进行访问和赋值时,此种表示方法显得十分方便。
通常,矩阵的拼接有按照水平方向拼接和按照垂直方向拼接两种。例如, 对矩阵A和B进行拼接,拼接表达式分别如下所示。 水平方向拼接:C=[A B]或C=[A,B]。 垂直方向拼接:C=[A;B]。 【例4.3】 把的魔术矩阵和的单位矩阵在水平方向上拼接成为一个的新 矩阵,垂直方向上拼接成为一个的新矩阵。本例目的:熟悉矩阵的拼接方 法和不同方向上拼接的区别。
判断输入数据是否为某中指定数据类型 判断输入数据是否为元胞数组类型 判断输入数据是否为元胞字符串类型 判断输入数据是否为字符类型 判断输入数据是否为浮点数类型 判断输入数据是否为整数类型 判断输入数据是否为逻辑类型 判断输入数据是否为数值类型 判断输入数据是否为实数类型 判断输入数据是否为结构体类型

判断矩阵是否为稀疏矩阵
4.7.3 获取矩阵的尺寸信息
矩阵的尺寸信息,包括矩阵最长维的大小、矩 阵维数、元素个数和指定维的长度等。MATLAB 提供给用户4个函数来获取以上信息,
矩阵尺寸信息查询函数
函 length ndims numel size 数 功 得到矩阵最长维长度 得到矩阵的维数 得到矩阵的元素个数 得到矩阵指定维的长度 能
数 重新排列矩阵


矩阵逆时针旋转90° 垂直方向为轴翻转矩阵 水平方向为轴翻转矩阵 指定方向为轴翻转矩阵
4.5 向量、标量与空矩阵
MATLAB中的矩阵多数是以矩形的形式显示,但 有时常出现特殊形式的矩阵,即由于和的取值 特殊,矩阵常常表现出非矩形的特征。本节主 要介绍三种特殊的矩阵结构:向量(vector)、 标量(scalar)和空矩阵(empty matrix)。
4.3.2 缩小矩阵的尺寸
如果要让矩阵“变小”,也就是删除矩阵的某 行或某列,只要把目标行或列赋予一个空矩阵[] 即可。
4.4 改变矩阵形状
矩阵的形状和矩阵的尺寸一样是可以改变的, MATLAB为用户提供了若干函数,用来改变矩阵 的形状,函数名称及功能如表所示。
MATLAB矩阵形状操作函数
函 reshape rot90 fliplr flipud flipdim
第4章 MATLAB7.0的矩阵和数组
MATLAB的基本数据结构为矩阵,其所有运算都 是基于矩阵进行的。从形式上看,矩阵可以理 解成二维的数组,矩阵可以方便地存储和访问 MATLAB中众多数据类型,构成矩阵的元素可以基本结构即操作内容包括矩阵的生 成、矩阵的拼接、矩阵变形、矩阵元素的寻访、 获取矩阵的信息,各种特殊矩阵类型以及高维 数组的知识。
4.9 小结
本章主要介绍MATLAB7.0中的基本数据结构—矩阵和数组,读者应该熟练掌握的内 容如下。 矩阵的创建方法 矩阵拼接 矩阵尺寸大小的改变 向量、标量和空矩阵 矩阵下标转换 矩阵元素的访问 矩阵信息的获取 高维数组
7
6
5
4
3
2
1
4.5.2 标量
标量是行列数都是1的特殊矩阵,任意以的矩阵形式表示的单个实 数或复数,称之为标量。如下的实数x就是一个标量。实数5的维数 为2,即行和列;且各维数值都为1。 >> x=5 x= 5 >> ndims(x) % 查看x的维数 ans = 2 >> size(x) %查看行、列维的数值 ans = 1 1
4.6 矩阵寻访
矩阵作为存储各种数据的基本单位,是若干相 关元素的有序集合,为方便用户访问矩阵中的 一个或者多个元素,MATLAB引入了元素下标的 概念。本节主要介绍不同的元素下标表示方法 以及如何利用矩阵的下标访问矩阵中的单元素 和多元素。
4.6.1 下标转换
MATLAB7.0中,矩阵的下标表示与常用的数学 习惯相同,使用“双下标”(Row-Column Index),即分别表示行和列,矩阵中的元素都 有对应的“第几行,第几列”。这种表示方法 简单直观,几何概念比较清晰。如下代码所示, 矩阵m中的元素8、5、2分别可以表示为
4.8.1 高维数组的创建
创建高维数组的常用方法包括以下两种。 调用函数直接创建标准高维数组。 下标直接索引赋值生成高维数组,即给数组中 某一位置的元素或者某些位置的元素赋值,以 此生成高维数组。
4.8.2 访问高维数组的信息
对于高维数组,同样可以运用适用于一般矩阵的信息获取函数(参见4.7) 来访问其信息。例如,以上一小节中调用reshape函数建立的新数组为例, 访问其维数、大小,最长维大小和元素个数等信息,具体代码如下。 >> ndims(P) % 查询数组的维度 ans = 3 >> size(P) % 查询数组的大小 ans = 2 2 4 >> length(P) % 查询数组的最长维大小 ans = 4 >> numel(P) % 查询数组的元素个数 ans = 16
4.7.2 获取矩阵的数据结构
MATLAB不但提供了判断矩阵内元素数据类型的 函数,还提供了判断矩阵本身数据结构的若干 函数,如表所示。
MATLAB矩阵元素数据结构判断函数
函 isempty isscalar isvector issparse

功 判断矩阵是否为空矩阵 判断矩阵是否为标量 判断矩阵是否为向量
4.2.2 拼接函数
除了使用矩阵拼接符[],还可以使用MATLAB7.0 提供的矩阵拼接函数执行,具体的函数和功能 列表如表所示。前三个函数的对应功能已经在 前面的例子中做过示范,这里不再赘述。下面 主要针对后两个指令举例说明其用法。
MATLAB的矩阵拼接函数0
函 cat horzcat vertcat repmat blkdiag 数 指定维拼接 水平方向拼接 垂直方向拼接 通过对现有矩阵复制和粘贴操作生成新矩阵 现有矩阵构造对角矩阵 功 能
4.8.3 高维数组操作函数
MATLAB提供了若干函数,专门用于对于高维数 组的操作。本小节主要介绍下列函数:squeeze、 flipdim、shiftdim和permute。 squeeze函数功能是删除高维数组中的“单一 维”,即大小为1的维,实现降维操作。例如, 对于一个的数组进行降维操作,使三维数组变 为二维数组。
4.5.3 空矩阵
MATLAB中为了表示和操作的方便,引入了“空矩阵” 的概念,其含义是至少一维的数值为0的矩阵。空矩阵 可以是、和(n为正整数)。空矩阵不是全0矩阵,读者 可以通过如下指令建立一个空矩阵a,再利用whos指令 查看其名称、大小和数据类型。 >> a a= [] >> whos Name Size Bytes Class a 0x0 0 double array
4.1.2
调用函数创建特殊矩阵
MATLAB7.0还提供了若干特殊矩阵的生成函数,在调用函数时,用户根据 需要设置参数,就可以方便地得到需要的矩阵,常用的特殊矩阵函数列表 MATLAB特殊矩阵创建函数 如下。
相关文档
最新文档