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矩阵和数组的操作
>>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实验报告(二)矩阵和数组操作一、实验目的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矩阵运算实验报告Matlab矩阵运算实验报告一、引言矩阵运算是数学和工程领域中的重要概念之一,它在各个领域中都有广泛的应用。
Matlab作为一种强大的数学软件工具,提供了丰富的矩阵运算功能,可以帮助我们进行高效的数值计算和数据处理。
本实验报告将介绍Matlab中的矩阵运算功能,并通过实例展示其在实际问题中的应用。
二、矩阵运算的基本概念矩阵是由若干个数按照行和列排列形成的一个矩形阵列,它是线性代数中的基本工具。
在Matlab中,矩阵可以通过直接输入数值或使用内置函数生成。
矩阵运算包括加法、减法、乘法、转置等操作,这些操作可以对矩阵的每个元素进行运算,也可以对整个矩阵进行运算。
三、矩阵运算的实例分析1. 矩阵的创建与赋值在Matlab中,可以使用以下命令创建一个矩阵,并对其进行赋值操作:A = [1, 2, 3; 4, 5, 6; 7, 8, 9];这样就创建了一个3行3列的矩阵A,并对其进行了赋值。
可以通过输入A来查看矩阵A的内容。
2. 矩阵的加法与减法矩阵的加法和减法是按照对应元素进行运算的。
例如,对于两个3行3列的矩阵A和B,可以使用以下命令进行加法运算:C = A + B;同样地,可以使用以下命令进行减法运算:D = A - B;这样就得到了矩阵C和D。
3. 矩阵的乘法矩阵的乘法是按照行乘以列的方式进行的。
例如,对于一个3行2列的矩阵A和一个2行4列的矩阵B,可以使用以下命令进行乘法运算:C = A * B;这样就得到了一个3行4列的矩阵C。
4. 矩阵的转置矩阵的转置是将矩阵的行和列进行交换的操作。
例如,对于一个3行2列的矩阵A,可以使用以下命令进行转置操作:B = A';这样就得到了一个2行3列的矩阵B。
四、矩阵运算的应用实例矩阵运算在实际问题中有着广泛的应用。
以下是一个简单的实例,通过矩阵运算来解决线性方程组的问题。
假设有一个线性方程组:2x + y = 4x + 3y = 6可以将其表示为矩阵形式:A = [2, 1; 1, 3];B = [4; 6];通过矩阵运算可以求解出未知数x和y的值:X = A \ B;这样就得到了未知数x和y的值。
矩阵和数组的操作 实验报告
实验报告课程名称:MATLAB上机实验实验项目:矩阵和数组的操作实验地点:专业班级:学号学生姓名:指导教师:年月日实验二矩阵和数组的操作一.实验环境计算机 MATLAB软件二.实验目的1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组元素的寻访与赋值,会对数组进行一般的操作。
三.实验内容与步骤1.用三种方法创建一个3×3矩阵,然后利用矩阵编辑器,将其扩充为4×5矩阵,并保存,试着调用它。
2.建立一个等差数列,然后由它产生一个对角阵。
3.利用MATLAB的函数inv(A)求方阵的逆矩阵。
解:1.(1)>> A=[3,2,1;4,5,6;7,8,9]A =3 2 14 5 67 8 9(2)A=rand(3,3)A =0.9501 0.4860 0.45650.2311 0.8913 0.01850.6068 0.7621 0.82142.> 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.>> A=[1,2;5,6]A =1 25 6>> B=inv(A)B =-1.5000 0.50001.2500 -0.2500四.练习题1.创建一个5×5矩阵,提取主对角线以上的部分。
>> A=rand(5,5)A =0.4447 0.1763 0.8936 0.1389 0.19880.6154 0.4057 0.0579 0.2028 0.01530.7919 0.9355 0.3529 0.1987 0.74680.9218 0.9169 0.8132 0.6038 0.44510.7382 0.4103 0.0099 0.2722 0.9318>> B=triu(A)B =0.4447 0.1763 0.8936 0.1389 0.19880 0.4057 0.0579 0.2028 0.01530 0 0.3529 0.1987 0.74680 0 0 0.6038 0.44510 0 0 0 0.93182.A=rand(3),B=magic(3),C=rand(3,4),计算A×B×C>> A=rand(3),B=magic(3),C=rand(3,4)A =0.4660 0.5252 0.83810.4186 0.2026 0.01960.8462 0.6721 0.6813B =8 1 63 5 74 9 2C =0.3795 0.7095 0.1897 0.30280.8318 0.4289 0.1934 0.54170.5028 0.3046 0.6822 0.1509>> D=A*B*CD =16.2278 13.1844 9.2577 9.61074.8656 4.7624 3.7848 2.692118.5715 15.9959 11.7862 10.76673.创建一个3×3矩阵,并求其转置,逆矩阵。
在MATLAB中使用矩阵和数组
在MATLAB中使用矩阵和数组MATLAB(Matrix Laboratory)是一种流行的数值计算软件,广泛用于科学和工程领域。
它具有强大的功能,可以进行各种数学运算和数据分析。
在MATLAB 中,矩阵和数组是基本的数据结构,它们用于存储和处理数据。
一、矩阵和数组的定义和基本操作在MATLAB中,矩阵和数组都可以用来存储和操作多个数据。
矩阵是一个二维的数值数组,而数组可以有多个维度。
在定义矩阵或数组时,我们可以直接输入数据,也可以使用内置的函数来生成。
例如,我们可以用以下方式定义一个矩阵A:A = [1 2 3;4 5 6;7 8 9]这个矩阵A是一个3×3的矩阵,它的元素分别为1到9。
我们可以使用分号来表示矩阵的不同行,并用空格或制表符来分隔不同列。
同样地,在MATLAB中,我们可以使用以下方式定义一个数组B:B = [1, 2, 3, 4]这个数组B是一个包含4个元素的一维数组。
在定义数组时,元素之间通常使用逗号来进行分隔。
一旦定义了矩阵或数组,我们就可以对其进行各种操作。
在MATLAB中,我们可以使用运算符对矩阵和数组进行加、减、乘、除等数学运算。
例如,我们可以使用加法运算符来计算两个矩阵的和:C = A + A这里,C是一个3×3的矩阵,它的元素是矩阵A的对应元素和。
同样地,我们可以使用减法、乘法和除法运算符来进行相应的运算。
此外,MATLAB还提供了许多其他的函数和工具箱,用于矩阵和数组的操作。
例如,我们可以使用sum函数来计算矩阵的和:D = sum(A)这里,D是一个包含3个元素的一维数组,它的元素分别是矩阵A每一列的和。
二、矩阵和数组的索引和切片在MATLAB中,我们可以使用索引和切片操作来访问矩阵和数组中的元素。
索引用来指定元素在矩阵或数组中的位置,而切片则可以选择矩阵或数组的一个子集。
例如,我们可以使用索引获取矩阵A中的某个元素:a = A(2, 3)这里,a的值为6,它是矩阵A的第2行第3列的元素。
MATLAB实验2 MATLAB的矩阵操作(1)
6、求特征值的方法求解方程
4x4+6x+3=0
(对比eig和roots、分析它们的不同和各自的应用范围)
7、P55思考练习3 , 5
实验过程中,请结合MATLAB的帮助系统。
四、实验操作过程与结果(写明使用到的函数及结算结果即可)
五、学生收获
MATLAB实验2MATLAB的矩阵操作(1)
班级专业:姓名:学号:日期:
一、实验目的
ห้องสมุดไป่ตู้1.熟悉MATLAB基本命令与操作;
2.熟悉MATLAB的矩阵运算;
3.了解MATLAB的多项式运算;
二、实验准备
通读书本第二章---MATLAB矩阵及其运算
三、实验内容
1.在命令窗口中键入表达式 ,并求 时 的值。
2. P54二.1
3.已知 , ,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:
(1)计算矩阵A的行列式的值
(2)分别计算下列各式:
、 和 、 、 、 、
4、产生3阶随机方阵,其元素为[10,60]区间的随机整数,然后判断A的元素是否能被5整除。(分析fix、rand、rem函数的使用方法)
matlab第二章实训报告
佛山科学技术学院《MATLAB教程第二章实训》报告专业姓名成绩班级学号日期一、目的1.学习matlab的数据类型2.矩阵和数组的算术运算3.字符串4.时间和日期5.结构体和元胞数组6.多维数组7.逻辑运算和关系运算8.数组的信息获取9.多项式二、步骤1.学习matlab的数据类型Matlab R2010a定义了15种基本的数据类型,包括整型、浮点型、字符型和逻辑型等。
用户甚至可以定义自己的数据类型。
Matlab内部的任何数据类型,都是按照数组的形式进行储存和运算的。
数值型包括整数和浮点数,其中整数包括有符号数和无符号数,浮点数包括单精度型和双精度型。
在默认情况下,matlab默认将所有数值都按照双精度浮点数类型来存储和操作。
(1)常数和变量Matlab的常数采用十进制表示,可以用带小数点的形式直接表示,也可以用科学记数法。
数值的表示范围是10^-309-10^309。
变量是数值计算的基本单元。
Matlab与其他的高级语言不同,变量使用是无需先定义,其名称就是第一次合法出现时的名称,因此用起来很便捷。
Matlab的变量命名有一定的规则:a.变量区分字母的大小写。
例如,“a”和“A”是不同的变量。
b.变量名不能超过63个字符,第63个字符后的字符会被忽略。
c.变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能有空格和标点符号。
d.关键字(如if\while等)不能作为变量名。
在matlab中的所有表示符号包括函数名、文件名都是遵循变量名的命名规则。
Matlab中有一些自己的特殊变量,是由系统预先自动定义的,例如:ans——运算结果的默认变量名Pi——圆周率πEps——浮点数的相对误差Inf或inf——无穷大Nan或nan——不定值i或j——i=j=-1^1/2,虚数单位Nargin——函数的输入变量数目Nargout——函数的输出变量数目Realmin——最小的可用正实数Realmax——最大的可用正实数(2)整数和浮点数Matlab提供了8种内置的整数类型,为了在使用时提高运行速度和存储空间,应该尽量使用字节少的数据类型,可以使用类型转换函数将各种整数类型强制相互转换。
matlab矩阵实验报告
matlab矩阵实验报告
《MATLAB矩阵实验报告》
摘要:
本实验报告利用MATLAB软件进行了一系列矩阵实验,包括矩阵的创建、运算、特征值分解和矩阵方程的求解等。
通过实验,我们深入了解了矩阵在MATLAB
中的操作方法,掌握了矩阵运算的基本原理和技巧。
1. 实验目的
本实验旨在通过MATLAB软件进行矩阵实验,掌握矩阵的基本操作和运算方法,加深对矩阵特征值分解和矩阵方程求解的理解,提高MATLAB软件的应用能力。
2. 实验内容
(1)矩阵的创建和赋值
(2)矩阵的运算:加法、减法、乘法
(3)矩阵的特征值分解
(4)矩阵方程的求解
3. 实验过程
首先,我们在MATLAB软件中创建了若干个矩阵,并对其进行了赋值操作。
然后,我们进行了矩阵的加法、减法和乘法运算,观察了不同矩阵之间的运算结果。
接着,我们利用MATLAB自带的函数对矩阵进行了特征值分解,并分析了
特征值分解的意义和应用。
最后,我们利用MATLAB解决了一些矩阵方程,验
证了矩阵方程求解的正确性。
4. 实验结果
通过实验,我们成功创建了各种矩阵,并对其进行了各种运算。
特征值分解和
矩阵方程的求解也得到了满意的结果,验证了MATLAB在矩阵操作方面的强大功能。
5. 实验结论
通过本次实验,我们进一步加深了对矩阵操作的理解,掌握了MATLAB软件在矩阵实验方面的应用技巧。
矩阵在数学和工程领域有着广泛的应用,MATLAB 软件的矩阵操作功能为矩阵相关问题的研究和解决提供了便利和支持。
综上所述,本次实验取得了圆满成功,为我们进一步学习和应用矩阵知识奠定了良好的基础。
MATLAB实验报告
实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量矩阵数组的生成及基本运算(区分数组运算和矩阵预算)、常用的数学函数。
了解字符串的操作。
二、实验内容(1)向量的生成和运算。
(2)矩阵的创建、引用和运算。
(3)多维数组的创建和运算。
(4)字符创的操作。
三、实验步骤1.向量的生成和运算1)向量的生成<1>、直接输入法<2> 冒号表达式法<3> 函数法:Linspace()是线性等分函数,logspace()是对数等分函数。
2)向量的运算1>维数相同的行、列向量之间可以相加减,标量可以与向量直接相乘除。
2>向量的点积与叉积运算E1和E2虽然表达式相同,但E1是标量,E2是矩阵。
2.矩阵的创建、引用和运算1)矩阵的创建和引用矩阵是由m*n元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。
1>直接输入法:2>抽取法:包括单下标抽取和全下表抽取两种方式,且两种方式抽取的元素都必须以小括号括起来。
3>函数法:利用ones(m;n)创建全1矩阵,zeros()创建全0矩阵,eyes()创建单位矩阵等等。
4>拼接法:纵向拼接横向拼接5>利用拼接函数cat()repmat()和变形函数reshape()>> A1=[1 2 3;9 8 7 ;4 5 6];A2=A1.';>> cat(1,A1,A2) 沿行向拼接ans =1 2 39 8 74 5 61 9 42 8 53 7 6>> cat(2,A1,A2) 沿列向拼接ans =1 2 3 1 9 49 8 7 2 8 54 5 6 3 7 6>> repmat(A1,2,2)ans =1 2 3 1 2 39 8 7 9 8 74 5 6 4 5 61 2 3 1 2 39 8 7 9 8 74 5 6 4 5 6> A=linspace(2,18,9)A =2 4 6 8 10 12 14 16 18 >> reshape(A,3,3)ans =2 8 144 10 166 12 182)矩阵的运算练习(1)用矩阵除法求下列方程组的解x=[x1;x2;x3]>> A=[6 3 4;-2 5 7;8 -1 -3];B=[3;-4;-7];X=A\BX =1.0200-14.00009.7200(2)求矩阵的秩A=[6 3 4;-2 5 7;8 -1 -3];>> rank(A)ans =3[X,lamda]=eig(A)X =0.8013 -0.1094 -0.16060.3638 -0.6564 0.86690.4749 0.7464 -0.4719lamda =9.7326 0 00 -3.2928 00 0 1.5602(3)矩阵的开方>> B=sqrtm(A)B =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 +2.3845i (4)矩阵的指数与对数:> C=expm(A)C =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745>> logm(C)ans =6.0000 3.0000 4.0000-2.0000 5.0000 7.00008.0000 -1.0000 -3.0000(6)矩阵的转置D=A'D =6 -2 83 5 -14 7 -3(7)矩阵的提取与翻转:通过各种特定函数如triu(A)、tril(A),diag(A)、flipud (A)、fliplr(A)等等。
matlab 实验报告
matlab 实验报告Matlab实验报告引言:Matlab是一种强大的数值计算和可视化软件,广泛应用于科学、工程和经济等领域。
本实验报告将介绍我在使用Matlab进行实验过程中的一些经验和结果。
实验一:矩阵运算在这个实验中,我使用Matlab进行了矩阵运算。
首先,我创建了一个3x3的矩阵A和一个3x1的矩阵B,并进行了矩阵相乘运算。
通过Matlab的矩阵乘法运算符*,我得到了一个3x1的结果矩阵C。
接着,我对矩阵C进行了转置操作,得到了一个1x3的矩阵D。
最后,我计算了矩阵C和矩阵D的点积,并将结果输出。
实验二:数据可视化在这个实验中,我使用Matlab进行了数据可视化。
我选择了一组实验数据,包括时间和温度两个变量。
首先,我将数据存储在一个矩阵中,并使用Matlab的plot函数将时间和温度之间的关系绘制成曲线图。
接着,我使用Matlab的xlabel、ylabel和title函数添加了横轴、纵轴和标题。
最后,我使用Matlab的legend函数添加了图例,以便更好地理解图表。
实验三:数值积分在这个实验中,我使用Matlab进行了数值积分。
我选择了一个函数f(x)进行积分计算。
首先,我使用Matlab的syms函数定义了符号变量x,并定义了函数f(x)。
接着,我使用Matlab的int函数对函数f(x)进行积分计算,并将结果输出。
为了验证结果的准确性,我还使用了Matlab的diff函数对积分结果进行了求导操作,并与原函数f(x)进行了比较。
实验四:信号处理在这个实验中,我使用Matlab进行了信号处理。
我选择了一个音频文件,并使用Matlab的audioread函数读取了该文件。
接着,我使用Matlab的fft函数对音频信号进行了傅里叶变换,并将结果绘制成频谱图。
为了进一步分析信号的特征,我还使用了Matlab的spectrogram函数绘制了信号的时频图。
通过对信号的频谱和时频图的观察,我可以更好地理解信号的频率和时域特性。
MATLAB实验报告(二)矩阵代数
实验总结:
通过实际的上机操作,我熟悉了MATLAB的有关线性代数运算指令和矩阵代数的MATLAB指令,学会了如何分析并解决矩阵除法、线性方程组的通解和矩相似对角化的问题,以及通过建模实验解决投入产出分析、基因遗产等应用问题,这一章节的指令比较多,也比较杂,需要分门别类地区分开,并且上机运行熟练并且记忆。
ans =
3 3%秩相等且小于4,说明有无穷多解
>> x=A\b
x =%求得一特解
1.0000
0
1.0000
0.0000
>>x0=null(A)
x0= %得到Ax=0的基础解系
-0.6255
0.6255
-0.2085
0.4170
求得通解为kx0+x
改进或思考:
>> A=[2 1 -1 1;1 2 1 -1;1 1 2 1];b=[1;2;3];
姓名:学号:实验日期:
实验目的:
1、学习MATLAB的有关线性代数运算指令;
2、熟悉矩阵代数的MATLAB指令;
3、熟悉如何应用指令解决计算和建模实验问题。
实验项目:
1、学会应用矩阵代数的MATLAB指令解决问题;
2、通过实验解决矩阵除法、线性方程组的通解和矩相似对角化的问题;
3、通过建模实验研究投入产出分析、基因遗产等应用问题。
>> C=[6/25, 2/5,1/20; 2.25/25,1/5,0.2/20; 3/25,0.2/5,1.8/20];A=(eye(3)-C)
A =
MATLAB的矩阵和数组的运算
武夷学院实验报告课程名称:实用统计软件项目名称:MATLAB的矩阵和数组的运算姓名:专业:班级:学号:同组成员:无一、实验准备1:(一)、实验环境软件准:计算机、MATLAB软件、实验教材(二)、实验所需知识点准备:实验原理:数组运算侧重数值之间的运算,在进行加、减时是数组中对应位置上数值进行加减,这与矩阵运算一致。
数组乘与矩阵乘意义完全不同。
矩阵乘遵循左侧矩阵的第一行与右侧矩阵第一列对应相乘然后相加,得到新矩阵里第一项,与此类推得到之后的项。
数组乘指对应位置的数值相乘。
特殊矩阵的产生通常有特定的函数指令,而这些指令通常是英文。
因此在运用时要牢记英文含义。
1.矩阵与数组的输入.对于较小较简单的矩阵,从键盘上直接输入矩阵是最常用的数值矩阵创建方法.用这种方法输入矩阵时注意以下三点:(1)整个输入矩阵以方括号“[ ]”为其首尾;(2)矩阵的元素必须以逗号“,”或空格分隔;(3)矩阵的行与行之间必须用分号“;”或回车键隔离.2.常用矩阵的生成. Matlab为方便编程和运算,提供了一些常用矩阵的生成指令:eye(n) 单位矩阵全1矩阵零矩阵eye(m,标准型矩阵ones(m,全1矩阵zeros(m,零矩阵eye(size(A)) 与A同型的标准型矩阵ones(size(A)) 与A同型的全1矩阵zeros(size(A)) 与A同型的零矩阵3.矩阵元素的标识.矩阵的元素、子矩阵可以通过标量、向量、冒号的标识来援引和赋值.(1)矩阵元素的标识方式A(ni,nj). ni,nj都是标量.若它们不是整数,则在1注:1、实验准备部分包括实验环境准备和实验所需知识点准备。
2、若是单人单组实验,同组成员填无。
式中会自动圆整到最临近整数.ni指定元素的行位置,nj指定元素的列位置.(2)子矩阵的序号向量标识方式A(v,w).4.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).A+B 两个同型矩阵A与B相加.s*A 数与矩阵A相乘A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量)元行位置,nj指定元素的列位置.(2)子矩阵的序号向量标识方式A(v,w).4.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).A+B 两个同型矩阵A与B相加.s*A 数与矩阵A相乘A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量)二、实验过程记录2:(一)、实验目的:1、学会矩阵和数组运算的基本规律;2、会进行编程运算来检验结果。
MATLAB第二章实验报告
深 圳 大 学 实 验 报 告课程名称: MATLAB实验名称: MATLAB 的数值计算学 院:指导教师:报告人: 组号:学号 实验地点实验时间: 年 月 日提交时间:二、内容和步骤1.创建矩阵(1)直接输入(2)用from:step:to方式(3)用linspace函数:(4)使用特殊矩阵函数,并修改元素(5)获取子矩阵块:.练习:b=logspace(0,4*3.14,20)b =1.0e+12 *1 至17 列0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0004 0.0018 0.0082 0.037718 至20 列0.1729 0.7924 3.63082.矩阵运算:(1)利用矩阵除法解线性方程组(2)利用矩阵的基本运算求解矩阵方程练习:(3)计算矩阵的特征值和特征向量。
验证特征值和特征向量与该矩阵的关系练习:将矩阵的乘除运算改为数组的点乘和点除运算:(4)利用数学函数进行矩阵运算w=logspace(-2,1,10)w =0.0100 0.0215 0.0464 0.1000 0.2154 0.4642 1.0000 2.1544 4.6416 10.0000LW=-20*log10(sqrt((2*w).^2 + 1))LW =-0.0017 -0.0081 -0.0373 -0.1703 -0.7396 -2.6993 -6.9897 -12.9151 -19.4040 -26.0314FW=-atan(2*w)*180/piFW =-1.1458 -2.4673 -5.3037 -11.3099 -23.3106 -42.8711 -63.4349 -76.9341 -83.8517 -87.13763.生成多维数组:c(18)=[]c =1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8练习:使用数组c编辑窗口查看变量a,b和c。
实验二 Matlab数组操作和矩阵操作
实验二Matlab数组操作和矩阵操作一、实验目的:掌握数组的创建,运算,矩阵的创建,掌握基本的矩阵运算及常用的函数。
多项式运算、代数方程求解、函数的极值问题、微积分问题求解、数值插值运算。
二、实验内容:进行以下实验,并记录相关数据,包括显示格式,可用截图。
1、输入矩阵并对其进行行、列或小矩阵元素的寻访与组合,矩阵直接输入赋值(1)对矩阵进行行和列寻访在第2(2)步基础上,在指令窗中输入a(1, : )+回车得第一行的寻访结果如下:ans = 1 2 3输入a( : ,1) 得第一列的寻访结果如下:ans = 147(2)对小矩阵的寻访和组合在第3(1)步基础上,在指令窗中输入:s=ones(2,2);s=a([1 2],[1 2])运行结果显示如下:s = 1 24 5(3)对(2)步中所得的s进行转置和对角元素的提取等操作在指令窗中输入:s.'+回车运行得s转置显示的结果如下:ans = 1 42 5在指令窗中输入:diag(s)+回车运行得s 对角元素显示结果如下:ans = 15(4)复数的赋值以及转换复数的赋值:x=[12 3 6;7 8 9;4 5 7];y=[0.4 5 6;-7 8 -9;5 6 4];cn=x+i*y运行结果如下:cn =12.0000 + 0.4000i 3.0000 + 5.0000i 6.0000 + 6.0000i7.0000 - 7.0000i 8.0000 + 8.0000i 9.0000- 9.0000i4.0000 +5.0000i 5.0000 +6.0000i7.0000 + 4.0000i复数的转换:real(cn)+回车结果如下:ans =12 3 67 8 94 5 7imag(cn)+回车结果如下:ans =0.4000 5.0000 6.0000-7.0000 8.0000 -9.00005.00006.0000 4.00004. 操作如下的程序:(1). 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*BA^2 A.^2 B/A B./A>> A=[7 1 5;2 5 6;3 1 5];>> B=[1 1 1; 2 2 2;3 3 3];>> A(2,3) %提取矩阵A的第2行第3列元素ans =6>>A(:,2) %提取矩阵A的第2列所有元素ans =151>> A(3,:) %提取矩阵A的第3行所有元素ans =3 1 5>> A(:,1:2:3) %提取矩阵A的第1列和第3列所有元素ans =7 52 63 5>>A(:,3).*B(:,2) %矩阵A的第3列元素与矩阵B第2列元素对应相乘ans =51215>>A(:,3)*B(2,:) %矩阵A的第3列与矩阵B第2行相乘ans =10 10 1012 12 1210 10 10>> A*B %矩阵A与矩阵B相乘ans =24 24 2430 30 3020 20 20>> A.*B %矩阵A与矩阵B对应元素相乘ans =7 1 54 10 129 3 15>> A^2 %矩阵A与矩阵A相乘ans =66 17 6642 33 7038 13 46>> A.^2 %矩阵A与矩阵A对应元素相乘ans =49 1 254 25 369 1 25>> B/A %矩阵B与矩阵A的逆相乘ans =0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A %矩阵B除以矩阵A中对应元素ans =0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.6000(2).输入 C=1:2:20,则 C(i)表示什么?其中 i=1,2,3, (10)C(i)=2*i-1(3).查找已创建变量的信息,删除无用的变量;(4). 理解下面程序各指令的含义,并运行结果:cleart =0:0.001:2*pi;subplot(2,2,1); polar(t, 1+cos(t))subplot(2,2,2); plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)2、已知⎥⎦⎤⎢⎣⎡=654321a ⎥⎦⎤⎢⎣⎡-=531142b ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=201c ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=063258741d下列运算是否合法,为什么?如合法,结果是多少?(1) result1 = a' (2) result2 = a * b (3) result3 = a + b (4) result4 = b * d(5) result5 = [b ; c' ] * d (6) result6 = a . * b (7) result7 = a . / b (8) result8 = a . * c (9) result9 = a . \ b (10) result10 = a . ^2 (11) result11 = a ^2 (12) result12 = 2 . ^ a(1) 合法,求a 的转置。
MATLAB实验报告二
信息工程学院实验报告
课程名称:MATLAB 实用教程
实验项目名称: MATLAB 基础知识
班级:通信122 姓名: 学号:
实 验 目 的:
1. 熟悉MA TLAB 的数据类型
2. 熟悉MA TLAB 的基本矩阵操作
3. 熟悉MA TLAB 的运算符
4. 熟悉MA TLAB 的字符串处理
实 验 环 境: (应填写所用的计算机配置及操作系统环境等)
1)硬件:PC 机
2)软件:Windows 操作系统、matlab7.1
实 验 内 容 及 过 程,实 验 结 果 及 分 析:
1. 创建结构体DataTypes,属性包含MATLAB 支持的所有数据类型,并通过赋值构造结构体二维数组。
2.用满矩阵和稀矩阵储存方式分别构造下列矩阵。
A=
3.在矩阵A末尾增加一行(元素全为1)得到矩阵B,删除矩阵A的最后一列得到矩阵C,替换矩阵A的所有非零元素为2
得到矩阵D。
4.分别查看矩阵(A,B,C,D)的长度。
5.给定矩阵E=rand(4.4),计算C+E,C.*E和C\E。
6.将十进制的80转换为二进制的字符串,并从中查找0的个数。
实验心得:。
matlab矩阵实验报告
matlab矩阵实验报告Matlab矩阵实验报告引言:Matlab是一种强大的数学计算工具,广泛应用于科学研究、工程设计和数据分析等领域。
其中,矩阵操作是Matlab的一项重要功能,它提供了丰富的矩阵运算和处理函数。
本实验将通过几个具体的案例,展示Matlab中矩阵操作的应用和效果。
一、矩阵的创建与赋值在Matlab中,可以通过直接赋值、随机生成或者通过其他矩阵运算得到新的矩阵。
例如,我们可以使用以下代码创建一个3行4列的矩阵A,并为其赋予随机的整数值:A = randi([1, 10], 3, 4);这样,矩阵A中的元素就是1到10之间的随机整数。
二、矩阵运算Matlab提供了丰富的矩阵运算函数,包括加法、减法、乘法、除法、转置等。
我们可以通过以下代码演示这些运算的效果:B = A + 2; % 矩阵加法C = A - 2; % 矩阵减法D = A * 2; % 矩阵乘法E = A / 2; % 矩阵除法F = A.'; % 矩阵转置通过这些运算,我们可以快速对矩阵进行数值的调整和转换。
三、矩阵的索引与切片在Matlab中,我们可以使用索引和切片操作来获取矩阵中特定的元素或子矩阵。
例如,我们可以通过以下代码获取矩阵A中的第二行第三列的元素:x = A(2, 3);同样,我们也可以通过切片操作获取矩阵A中的某一行或某几行,例如:y = A(2, :); % 获取第二行的所有元素通过这样的操作,我们可以方便地提取出矩阵中我们感兴趣的部分。
四、矩阵的运算函数除了基本的矩阵运算外,Matlab还提供了许多常用的矩阵运算函数,如求矩阵的逆、行列式、特征值等。
例如,我们可以使用以下代码计算矩阵A的逆矩阵和行列式:invA = inv(A); % 矩阵的逆detA = det(A); % 矩阵的行列式这些函数可以帮助我们更方便地进行矩阵的运算和分析。
五、矩阵的应用案例矩阵在科学研究和工程设计中有着广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
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 矩阵结构变化产生新矩阵
3.数组(矩阵)操作
对数组或矩阵的基本操作有插入、重新排列、提取、按列拉长、置空(去掉某行或某列)、置零、用单信下标操作一个矩阵,用逻辑数组操作一个矩阵、按指定条件求子数组,求数组的规模等,下面一一举例说明(对数组和矩阵不加区别)。
X=4:6 x=4 5 6
①插入通过对x进行插入运算创建矩阵A
A=[x-3;x;x+3] A=1 2 3
4 5 6
7 8 9
②重新排列以逆序重排A的各行形成矩阵B
B=A(3:-1:1,1:3) B=7 8 9
4 5 6
1 2 3
③提取提取A的前两行的后两列形成矩阵C
C=A(1:2,2:3) C=2 3
5 6
④按列拉长对C按列拉长形成矩阵D
D=C(:) D=2
5
3
6
⑤置空删除B的第2 列
B(:,2)=[] B=7 9
4 6
1 3
⑥置零将矩阵B的第2行第2列的元素置为1
B[2,2]=0 B=7 9
4 0
1 3
⑦用单个下标操作一个矩阵
MATLAB对矩阵中的元素赋予一个序号,序号值按列从第1列第1行到第1列第2行到第2列第1行到第2列第2行,直至最后一列最后一行的顺序计数。
B(3) ans=1
B(5) ans=0
B(2:4) ans=4 1 9
⑧用逻辑数组操作一个矩阵
x=-4:4 x=-4 –3 –2 –1 0 1 2 3 4
%判断数组中的元素的绝对值大于3的情况,绝对值大于3的元素置为1,否则为0。
abs(x)>3 ans=1 0 0 0 0 0 0 0 1
对矩阵可进行同样操作:
A=[1,2,3;4,5,6;7,8,9] A=1 2 3
4 5 6
7 8 9
abs(A)>3 ans=0 0 0
1 1 1
1 1 1
⑨按指定条件求子数组
首先由条件表达式生成一个逻辑数组,然后使用系统提供的函数即可,函数在已知数组中按逻辑数组的元素值查找所需的元素下标。
a=abs(x)>2 a=1 1 0 0 0 0 0 1 1
b=find(a) b=1 2 8 9
y=x(b) y=-4 –3 3 4
函数find也可用于矩阵。
A=[1:3;4:6;7:9] A=1 2 3
4 5 6
7 8 9
B=A>4 B=0 0 0
0 1 1
1 1 1
[r,s]=find(B) r=3 s=1
2 2
3 2
2 3
3 3
三、实验内容与步骤
1.用三种方法创建一个3×3矩阵,然后利用矩阵编辑器,将其扩充为4×5矩阵,并保存,试着调用它。
⑴直接输入法
如在命令区输入A=[3,2,1;4,5,6;7,8,9]。
⑵直接利用MATLAB提供的函数创建一个3×3矩阵
如在命令区输入rand(3,3)即得到一个3×3的随机矩阵。
⑶利用MATLAB提供的“Matrix Editor”完成输入
步骤1 在命令区输入A=1。
步骤2 用鼠标单击工具栏的工作区浏览器,MATLAB弹出变量浏览器,选中变量A,鼠标左键双击A,打开矩阵编辑器。
步骤3 在左下脚的两个文本框中分别输入希望得到的矩阵的行数和列数:3行3列,即得到一个3×3矩阵。
步骤4 要将上面矩阵改为一个4×5矩阵,只需改变矩阵的行数和列数即可。
如将3行3列改为4行5列,即可得到一个4×5矩阵。
若想修改其中的元素,只需用鼠标选中表格中我们想要修改的元素,将原来的元素修改为我需要的值。
步骤5 要命令区输入save data A(data为我们给变量文件起的名称,系统会自动沿设定好的路径以“.mat”格式存储文件),即可保存上面例子中创建的矩阵A。
步骤6 在命令区输入load data即可把保存在文件中的矩阵读到MATLAB的工作区的内存中来。
建立一个等差数列,然后由它产生一个对角阵。
步骤1 在命令区输入a=linspace(0,1.5,5)产生一个等差数列。
步骤2 在命令区输入B=diag(a)产生一个对角阵。
3.利用MATLAB的函数inv(A)求方阵A的逆矩阵。
步骤1 在命令区输入A=[1,2;5,6]得到一个2×2的方阵。
步骤2 再输入B=inv(A)求出A 的逆矩阵。
四、练习
创建一个5×5矩阵,提取主对角线以上的部分。
A=rand(3),B=magic(3),C=rand(3,4),计算A×B×C
创建一个3×3矩阵,并求其转置,逆矩阵。
用两种方法求Ax=b的解(A为4阶随机矩阵,b为4阶列向量)。
A。
创建一个4阶随机矩阵A,计算3
五、实验分析
矩阵和数组操作实验比较麻烦,容易搞混,尤其是它的各种运算
六、实验总结
矩阵和数组是比较相似,容易搞混的两个概念,特别是它的一些运算,但矩阵和数组操作是非常有用的在MATLAB中,它们可以直接解决一些简单的问题。