Matlab教程Ch2(矩阵与数组)

合集下载

2024版matlab教程(全)资料ppt课件

2024版matlab教程(全)资料ppt课件

进行通信系统的建模、仿真和分析。
谢谢聆听
B
C
变量与赋值
在MATLAB中,变量不需要事先声明,可以 直接赋值。变量名以字母开头,可以包含字 母、数字和下划线。
常用函数
MATLAB提供了丰富的内置函数,如sin、 cos、tan等三角函数,以及abs、sqrt等数 学函数。用户可以通过help命令查看函数的
D
使用方法。
02 矩阵运算与数组操作
错误处理
阐述try-catch错误处理机制的语法、 执行流程及应用实例。
04
函数定义与调用
函数概述
阐述函数的概念、作用及分类,包括内置函数和 自定义函数。
函数调用
深入剖析函数的调用方法,包括直接调用、间接 调用及参数传递等技巧。
ABCD
函数定义
详细讲解自定义函数的定义方法,包括函数名、 输入参数、输出参数及函数体等要素。
拟合方法
利用已知数据点构造近似函数,如最小二乘法、多项 式拟合、非线性拟合等。
插值与拟合的比较
插值函数经过所有数据点,而拟合函数则追求整体上 的近似。
数值积分与微分
01
数值积分方法
利用数值技术计算定积分的近似 值,如矩形法、梯形法、辛普森 法等。
02
数值微分方法
通过数值技术求解函数的导数或 微分,如差分法、中心差分法、 五点差分法等。
02
01
矩阵运算
加法与减法
对应元素相加或相减,要求矩阵 大小相同
乘法
使用`*`或`mtimes`函数进行矩阵 乘法,要求内维数相同
点乘与点除
使用`.*`、`./`进行对应元素相乘或 相除,要求矩阵大小相同
特征值与特征向量

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.掌握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基础教程 第2章 数组、矩阵及其运算

MATLAB基础教程 第2章 数组、矩阵及其运算

写出MATLAB表达式。 解:根据MATLAB的书写规则,以上MATLAB表达式为: (1)y=1/(a*log(1-x-1)+C1) (2)f=2*log(t)*exp(t)*sqrt(pi) (3)z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y))) (4)F=z/(z-exp(T*log(8)))
命令:X(3:-1:1)
命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.1 数组(矩阵)的创建和寻访
2. 二维数组的创建和寻访
例2-3 综合练习。将教材P.31~P.44的实例按顺序在MATLAB的 command窗口中练习一遍,观察并体会其输出结果。 (注意变量的大小写要和教材上的严格一致。)
A./B
B.\A
A的元素被B的对应元素相除
(与上相同)
第二章 数组、矩阵及其运算
2.3 数组、矩阵的其他运算
1. 乘方开方运算
数组的乘方运算与power函数 格式:c=a.^k或c=power(a,k) 例如: >> g=[1 2 3;4 5 6] >>g.^2 矩阵的乘方运算与mpower函数 格式:C=A^P或C=mpower(A,P) 注意:A必须为方阵
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的加法、减法
运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算, A和B矩阵的相应元素相加减。如果维数不相同,则MATLAB将给出
出错信息。
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的乘法

MATLAB基础与应用-第3章数组与矩阵操作

MATLAB基础与应用-第3章数组与矩阵操作

>> v=[1 2 3];
>> x=diag(v,-1)
x=
0000
1000
0200
0030
>>randsrc(3,5,[-3,-1,1,3],1) %随机生成3×5的数组,数组
ans =
元素由[-3,-1,1,3]构成。
3 1 3 -1 -3
1 3 1 3 -1
3 -1 -3 -1 1
>> a=2.35; b=3/7;
>> a=eye(3)
%生成主对角线元素为1的3×3单位数组
a=
100
010
001
>> b=diag(a)
%将行列式a的对角线元素赋给数组b
b=
1
1
1
以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v 为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时, v为下方第k条对角线。
例3-1:数建等差数组
Z = [ 1 , 0.75 , 0.5 , 0.25 , 0 ]
>>a=rand(1,3)
%随机生成数组
A=
0.9501 0.2311 0.6068
>> Z = linspace( 5 , 20 , 4 )
%函数生成等差数组
Z=
[ 5 , 10 , 15 , 20 ];
>>b=logspace(1,3,3) %logspace(a,b,n),生成从10的a次
方到10的b次方之间按对数等分的n个元素的行向量。
b=
10 100 1000
>> c=0:pi/4:pi

第2章MATLAB矩阵和数组运算

第2章MATLAB矩阵和数组运算

2019年11月18日星期一
5
2.1.2 利用函数建立矩阵
• MATLAB提供了很多函数,可以通过这些函 数方便地建立矩阵。
– 1.单位矩阵函数eye() – 2.随机矩阵函数rand() – 3.魔方矩阵函数magic() – 4.范得蒙(Vandermonde)矩阵函数vander() – 5.托普利兹(Toeplitz)矩阵函数toeplitz()
• 解 在MATLAB命令提示符下输入:
>> clear >> X=eye(5) X=1 0 0 0 0
01000 00100 00010 00001 >> Y=eye(2,3) Y=1 0 0 010
2019年11月18日星期一
8
2.随机矩阵函数rand()
• 随机矩阵的特点是由计算机随机产生数据 而生成的矩阵。通过运行rand()函数可以生 成随机矩阵,调用方法为:
vander(x)
其中x为一给定向量,可以用此向量生成一个范 得蒙矩阵。
2019年11月18日星期一
13
【例2.6】利用向量m建立一个范得 蒙矩阵
• 解 在MATLAB命令提示符下输入:
>> m=[2 3 4 5]; >> vander(m) ans=8 4 2 1
27 9 3 1 64 16 4 1 125 25 5 1
– 矩阵的尺寸不必预先定义
2019年11月18日星期一
3
2.1.1 直接建立矩阵
• 直接建立矩阵的方法就是把矩阵的各元素 用中括号括起来,括号内同一行的元素之 间用空格或逗号分开,行与行之间用分号 或回车符分开。
• 在MATLAB环境下,分号具有三个作用:

MATLAB课件2 矩阵与数组

MATLAB课件2 矩阵与数组

2.用数组编辑器创建和修改矩阵: 1)只要是赋过值的变量,不管是否在屏幕 上显示过,都存储在工作空间中,以后可 随时显示、调用、修改。 2)还可以用工作空间中的数组编辑器 (Array Editor)来编辑和修改变量(双击 变量名即可打开)。 3)变量名尽可能不要重复,否则会覆盖。 不要与常量重名。
a=[1 2 3;4 5 6]
x=[2 pi/2;sqrt(3) 3+5i]
2.2.1 创建矩阵的方法
指令中的符号:
matlab允许多条语句在同一行出现。
“,”和“;”可作为指令间的分隔 符,
分号如果出现在指令后,屏幕上将不
显示结果。
当一个指令或矩阵太长时,可用•••续

2.2.1 创建矩阵的方法
2.2.1 创建矩阵的方法


3.用matlab函数创建矩阵:
空阵[ ] — matlab允许输入空阵,当一项
操作无结果时,返回空阵。

rand(m,n)— 随机矩阵,数字范围(0,1)


eye(m,n)— 单位矩阵,方阵。
zeros(m,n)— 全部元素都为0的矩阵 ones(m,n) — 全部元素都为1的矩阵
间的线性等间距的数,间隔(10-1)/(5-1)

%产生10^0到10^2
2.2.1 创建矩阵的方法

矩阵连接,如:
A=[1:6]; B=[1;2;3;4;6;7]’;
c=[A B];C=[A;B]

创建列向量
用转置符号’实现:如:A=[1:6]’ 直接输入元素:B=[1;2;3;4]
练习1
例:
x1+2x2=1
2x1+3x2=2 3x1+4x2=3

matlab课件--第2讲 数组和矩阵

matlab课件--第2讲 数组和矩阵

Matlab 软件实习
特殊矩阵的创建
a. 零矩阵、 1矩阵和单位矩阵
b. 随机矩阵
c. 对角矩阵和三角矩阵
d. 子矩阵 e. 其它特殊矩阵
Matlab 软件实习
a.零矩阵、1矩阵和单位矩阵
命令
ones(n) ones(m,n) ones(size(A)) zeros(n) zeros(m,n) zeros(size(A)) eye(n) eye(m,n) eye(size(A))
Matlab 软件实习
例: 分别建立3×3、3×2和与矩阵A同样大小的零矩阵. (1) 建立一个3×3零矩阵。 zeros(3) (2) 建立一个3×2零矩阵。 zeros(3,2) (3) 设A为2×3矩阵,则可以用zeros(size(A))建立一个 与矩阵A同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵
Matlab 软件实习
例:建立随机矩阵 (1) 在区间[20,50]内均匀分布的5阶随机矩阵。 (2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。 命令如下: x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)
此外,常用的函数还有reshape(A,m,n),它在矩阵总 元素保持不变的前提下,将矩阵A重新排成m×n的二 维矩阵。
0.8913 1.05
0.8913
>>x([1 2 3 4 4 3 2 1]) ans = Columns 1 through 8 0.9501 0.2311 0.6068 0.4860 0.4860 0.6068 0.2311 0.9501
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
特殊矩阵的建立
函数
eye zeros ones [] rand randperm linspace compan magic
功能
产生单位矩阵 产生全部元素为0的矩阵 产生全部元素为1的矩阵 产生空矩阵 产生均匀分布随机矩阵 产生随机排列 产生线性等分的矩阵 产生伴随矩阵 Magic(魔方)矩阵
9
>> Y=inv(X)
Y=
0.2299 0.0908 0.0351 -0.0717
0.1940 0.0798 -0.0659 0.0095
0.1274 -0.0835 0.0322 0.0176
-0.2892 0.0084 0.0275 0.0377
>>Y*X
%矩阵与其逆阵相乘结果是单位矩阵
ans =
10
例 修改矩阵A中元素的数值
>>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; >>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: A=
0234 5778 9 10 11 12 13 14 15 1
21
结束语
学好计算机的唯一途径是 你的编程能力与你在计算机上投入的时间成
22
V=
-0.7071 -0.2425 0.3015
00
0.9045
-0.7071 -0.9701 0.3015
D=
-1 0 0
020
002
17
2.3 数组
数组运算方式是一种元素对元素的运算(不按 照线性代数的规则) ;
除了加、减法的与矩阵相同以外,乘、除、幂 的数组运算符都是通过在标准的运算符前面加 一个圆点来生成。
用中括号[ ]把所有矩阵元素括起来 同一行的不同数据元素之间用空格或逗号间隔 用分号(;)指定一行结束 可分成几行进行输入,用回车符代替分号 数据元素可以是表达式,系统将自动计算结果
7
例:输入矩阵A、B的值
>>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] >>A=[1, 2,3,4; 5,6,7,8; 9,10, 11, 12; 13, 14, 15, 16] >> A=[1, 2, 3, 4 5, 6, 7, 8 9, 10, 11, 12 13, 14, 15, 16] >>B=[1,sqrt(25),9,13 2,6,10,7*2 3+sin(pi),7,11,15, 4,abs(-8),12,16]
>> x*y
%矩阵乘法:按照线性代数理论进行
ans =
30 24 18
84 69 54
19
多维数组维间处理的函数
1.reshape 2.size 3.ndims 4.cat 5.permute 6.ipermute 7.shiftdim 8.squeeze
20
应用举例
矩阵中元素的操作
(1)矩阵A的第r行:A(r,:) (2)矩阵A的第r列:A(:,r) (3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:) (4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2) (5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:) (6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1 ) (7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ] (8)删除A的第j1~j2列,构成新矩阵:A(:, j1:j2)=[ ] (9)将矩阵A和B拼接成新矩阵:[A B];[A;B]

>> a = [1 2 3]; >> b = [4 5 6]; >> c = dot(a, b) >> d = cross(a, b) c= 32 d=
-3 6 -3
5
2.2 矩阵
MATLAB = matrix(矩阵)+ laboratory(实验室)
6
矩阵的构造
通过直接输入矩阵的元素构造矩阵:
1.0000 0
0
0
0 1.0000 0
0
00
1.0000 0
00
0
1.0000
>> X*Y
%矩阵的逆阵是唯一的
ans =
1.0000 0
0
0
0 1.0000 0
0
00
1.0000 0
00
0
1.0000
16
应用4.求特征值和特征向量
>> X=[-2 1 1;0 2 0;-4 1 3];
>> [V D]=eig(X)
方阵的特征值与特征向量:[V, D]=eig(A)
12
矩阵函数
函数
det diag eig inv lu poly rank svd
功能 计算矩阵所对应的行列式的值 抽取矩阵对角线元素 求特征值和特征向量 求矩阵的逆阵 三角分解 求特征多项式 求矩阵的秩 奇异值分解
13
应用1.求矩阵的行列式的值
2.利用冒号表达式“:”生成向量
>>x=1:2:9
%初值=1,终值=9,步长=2
>>y=1:5
%初值=1,终值=5,默认步长=1
3.利用函数生成向量
>> x=linspace(1, 9, 5)
%初值=1,终值=9,元素数目=5
4
向量的运算
1.点积:dot函数 2.叉积:cross函数
>> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16]; >>det(X) ans = -5464
14
应用2.求矩阵的秩
>> X=[1, 2, 3; (X) ans =
2
15
应用3.求逆矩阵
>> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16];
18
数组运算
>> x=[1 2 3; 4 5 6; 7 8 9];
>> y=[9 8 7; 6 5 4; 3 2 1];
>> x+y
%数组和矩阵的加法规则相同
ans =
10 10 10
10 10 10
10 10 10
>> x.*y
%数组乘法:对应元素相乘
ans =
9 16 21
24 25 24
21 16 9
11
矩阵的运算
矩阵加法:A+B
矩阵乘法:A*B
方阵的逆:inv(A)
矩阵除法:x=A\b 或 inv(A)*b 如:方程组Ax=b的解
乘幂运算:^ 矩阵转置: ' (转置运算符)
方阵的行列式:det(A)
矩阵或向量的2-范数:norm( )
矩阵的秩:rank( )
矩阵的维数:size( ) 向量的维数:length( )
1
第2章 矩阵和数组
2.1 向量 2.2 矩阵 2.3 数组
2
2.1 向量
向量是矢量运算的基础
行向量 列向量
3
向量的构造
1.逐个输入
>>a=[1 3 9 10 15 16]
%采用空格和逗号分隔构成行向量
>>b=[1; 3; 9; 10; 15; 16]
%采用分号隔开构成列向量
相关文档
最新文档