《矩阵基本运算》PPT课件.ppt
MATLAB 入门入门1.双击图标,进入双击图标,进入Matlab界面(界面(command)2.单击单击file New Mfile 进入编辑进入编辑界面界面(Untitled1),进行编程之后,点击保存进行编程之后,点击保存时可以修改文件名时可以修改文件名.必须用英必须用英文开头文开头3.要显示运算的结果,有两种方法:要显示运算的结果,有两种方法:(1)进入进入command界面,健入你定义的文界面,健入你定义的文件名,然后按回车键即可得到计算结果;件名,然后按回车键即可得到计算结果;(2)点击编辑界面上方点击编辑界面上方Debug Run或箭或箭头头 于是运行结果出现在于是运行结果出现在command界面。界面。一一.矩阵与向量的基本运算矩阵与向量的基本运算1.矩阵(向量、数组)的输入方法矩阵(向量、数组)的输入方法 矩阵的输入利用矩阵的输入利用 ,采取分行输入方法,采取分行输入方法,例例1.矩阵矩阵 A=的的Matlab输入:输入:A=1,5,1,0,1;2,6,0,1,1;3,7,1,0,1;4,8,0,1,1;每个元素每个元素之间用逗号或空格,之间用逗号或空格,每行之间每行之间用分号用分号.注意:注意:行尾分号的作用在于运算结果不显示行尾分号的作用在于运算结果不显示.n维行维行(列列)向量可以看成是一个行向量可以看成是一个行(列列)矩阵,因此向量的输入和矩阵一样矩阵,因此向量的输入和矩阵一样.2.矩阵的合成与分解矩阵的合成与分解求求A的第一行的第一行与第一列与第一列解:解:A1=A(1,:)表示矩阵表示矩阵A的第一行;的第一行;A2=A(:,1)表示矩阵表示矩阵A的第一列;的第一列;练习:练习:A(4,:),A(3,2),分别表示什么?分别表示什么?例例2.矩阵矩阵A=如果需要两行如果需要两行(列列)以上怎么表示呢以上怎么表示呢?例例3.3.求矩阵求矩阵A A的第的第1,3,41,3,4行元素组成的矩阵行元素组成的矩阵.解:首先健入解:首先健入a=1,3,4;然后健入然后健入 B=A(a,:)即可即可其中其中a=1,3,4称为称为索引向量索引向量.练习:求矩阵练习:求矩阵A A的第的第1,3,41,3,4列元素组成的矩阵列元素组成的矩阵例例4.求从矩阵求从矩阵A中去掉第中去掉第1,2列后,剩余元素列后,剩余元素组成的矩阵组成的矩阵.解:解:a=1,3,4;B=A(:,a);注意:注意:3:5 表示从表示从3开开始按步长为始按步长为1 增加到增加到5.B=1 0 1 0 1 1 1 0 1 0 1 1可以写为可以写为 B=A(:,3:5);练习:求从练习:求从A中去掉中去掉2,5两行两行后所得到的子矩阵后所得到的子矩阵解法一:解法一:a=1,3,4;B=A(a,:)解法二:解法二:B=A(1,:);A(3,:);A(4,:)3.矩阵的加减法、乘法、转置与求逆运算等矩阵的加减法、乘法、转置与求逆运算等A+B,A-B,A*B,A.2,A,inv(A),det(A)分别表示:分别表示:A,B的和的和,差差,积积,点乘方点乘方,转置转置,求逆求逆 以及以及A的行列式的行列式B=1 5 1 0 1 3 7 1 0 1 4 8 0 1 1例例5.已知已知求:求:AB,B-1,B-AT,|A|解:解:A=1,2,3;4,5,6;7,8,0;B=1,2,1;1,1,2;2,1,1;a=A*B,b=inv(B),c=B-A,d=det(A)a=9 7 8 21 19 20 15 22 23b=-1/4 1/4 -3/4 3/4 -1/4 -1/4 -1/4 3/4 -1/4c=0 -2 -6 -1 -4 -6 -1 -5 1det(A)=274.向量的数量积,矢量积与范数向量的数量积,矢量积与范数的数量积的数量积例如:例如:a=1,2,3,b=-1,5,6,c=1,0,1则则 Matlab 中数量积中数量积:dot(a,b);矢量积矢量积:cross(a,b)dot(a,b)=27,cross(a,c)=(2,2,-2)解:解:a,b,c 的混合积为:的混合积为:dot(a,cross(b,c)练习:计算练习:计算a,b,c 的混合积的混合积Matlab 中向量中向量 a 的范数为:的范数为:norm(a)例例6 a=1,2,3,b=-1,5,6,c=1,0,1,求求a,b的范数的范数 解:解:norm(a)=3.7417,norm(b)=7.8740 练习:对例练习:对例6计算:计算:a,b夹角的余弦夹角的余弦dot(a/norm(a),b/norm(b)解法二:解法二:dot(a,b)/norm(a)/norm(b)解法一:解法一:=0.9164思考:思考:a,b,c三个向量那两个更接近?三个向量那两个更接近?二二.度量空间与距离度量空间与距离1.度量空间度量空间定义:设定义:设X是任一集合,如果是任一集合,如果X中任意两个元素中任意两个元素x与与y,都对应一个实数,都对应一个实数d(x,y),且满足:,且满足:(1)非负性非负性:d(x,y)0,当且仅当当且仅当x=y时时,d(x,y)=0(2)对称性对称性:d(x,y)=d(y,x)(3)三角不等式三角不等式:对任意的对任意的x,y,zX X,有,有 d(x,y)d(x,z)+d(z,y)则称则称d(x,y)为为x与与y之间的距离,称之间的距离,称X是以是以d(x,y)为距离的度量空间或距离空间为距离的度量空间或距离空间.2.常见的距离空间常见的距离空间(1)n维欧氏空间维欧氏空间:设设 表示表示n维向量维向量(2)的全体所组成的集合,称为的全体所组成的集合,称为n维欧氏空间维欧氏空间(2)连续函数空间连续函数空间Ca,b:令令Ca,b=x(t)|x(t)是是a,b上的连续函数上的连续函数则称则称Ca,b为连续函数空间,在为连续函数空间,在Ca,b上定义上定义 d(x,y)=max|x(t)-y(t)|(3)平方可积函数空间平方可积函数空间 :令令则称则称 为平方可积函数空间为平方可积函数空间,定义距离:,定义距离:(4)平方可和离散序列空间平方可和离散序列空间 :令:令则称则称 平方可和离散序列空间,定义距离:平方可和离散序列空间,定义距离:3.向量的距离与计算向量的距离与计算(1)欧氏距离欧氏距离:Matlab中命令:中命令:dist(A,B)计算计算A中中每个行向每个行向量量与与B中中每个列向量每个列向量之间欧氏距离,之间欧氏距离,A的行向的行向量维数必须等于量维数必须等于B的列向量维数的列向量维数例例7.a=1,2,3,b=-1,5,6,c=1,0,1求求a,b,c欧氏距离欧氏距离解:解:dist(a,b)=4.6904,dist(a,c)=2.8284dist(c,b)=7.3485(2)绝对距离:绝对距离:Matlab中命令:中命令:mandist(A,B)计算计算A中每中每个行向量与个行向量与B中每个列向量之间绝对距离,中每个列向量之间绝对距离,A的行向量维数必须等于的行向量维数必须等于B的列向量维数的列向量维数.例例8.求例求例6中向量之间的绝对值距离中向量之间的绝对值距离.mandist(a,b)=8;mandist(a,c)=4;mandist(c,b)=12解解:dist(a,b)=4.6904,dist(a,c)=2.8284dist(c,b)=7.3485由此,你发现了什么?由此,你发现了什么?(3)闵可夫斯基距离:闵可夫斯基距离:当当 r=1,2 时分别为绝对距离和欧氏距离时分别为绝对距离和欧氏距离(4)马氏距离:马氏距离:其中其中 V是一个实对称正定矩阵,通常取样是一个实对称正定矩阵,通常取样本的协方差矩阵,当本的协方差矩阵,当V=E时即为欧氏距离时即为欧氏距离.以上距离,在以上距离,在Matlab(6.)中有命令中有命令:pdist具体如下:具体如下:设样本设样本X是是m个个n维行向量所组成的矩阵,则有:维行向量所组成的矩阵,则有:Pdist(X)样本样本X中各中各n维向量的欧氏距离维向量的欧氏距离 Pdist(X,cityblock)各各n维向量的绝对距维向量的绝对距离离Pdist(X,Minkowski,r)闵可夫斯基距离闵可夫斯基距离Pdist(X,mahal)各各n维向量的马氏距离维向量的马氏距离注意:注意:而而pdist(X)是个一行是个一行 列列矩阵。各列分别表示矩阵。各列分别表示X中各行向量按如下顺序中各行向量按如下顺序的距离的距离 (1,2),(1,3),(1,m),(2,3),(2,4),(2,m),(m-1,m)三三.向量的均值、方差、协方差与相关矩阵向量的均值、方差、协方差与相关矩阵mean(A)A中各中各列列向量的均值向量的均值 Var(A)A中各中各列列向量的方差向量的方差 Std(A)A中各中各列列向量的标准差向量的标准差 Cov(A)A中各中各列列向量的协方差矩阵向量的协方差矩阵Corrcoef(A)A中各中各列列向量的相关矩阵向量的相关矩阵 如果计算如果计算A中中各行向量各行向量的均值、方差、协方的均值、方差、协方差矩阵,相关矩阵,只需先将差矩阵,相关矩阵,只需先将A转置即可转置即可.例例9.现测得现测得6只只Apf和和9只只Af蠓虫的触长蠓虫的触长,翅长数据如下:翅长数据如下:Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96)Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08)计算两类蠓虫的各自之间的欧氏、绝对、马氏距离计算两类蠓虫的各自之间的欧氏、绝对、马氏距离解解:Af=1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08;d1=(pdist(Apf);d2=(pdist(Apf,cityblock);d3=pdist(Apf,mahal);d=d1,d2,d3Apf=1.14,1.78;1.18,1.96;1.2,1.86;1.26,2.;1.28,2;1.30,1.96;表一表一.ApfApf蠓虫之间的距离蠓虫之间的距离Apf蠓虫蠓虫欧氏距离欧氏距离绝对距离绝对距离马氏距离马氏距离d120.18440.22002.5626d130.10000.14000.9883d140.25060.34002.4942d150.26080.36002.5318d160.24080.34002.5478d230.10200.12002.2507d240.08940.12001.5470d250.10770.14002.0430d260.12000.12003.0777d340.15230.20001.6534d350.16120.22001.5873d360.14140.20001.6025d450.02000.02000.5129d460.05660.08001.6616d560.04470.06001.1764Af蠓蠓欧氏距欧氏距绝对距绝对距马氏距马氏距Af蠓蠓欧氏距欧氏距绝对距绝对距马氏距马氏距d120.12170.14001.4423d370.20590.28001.3971d130.16120.22002.3963d380.24080.34001.6847d140.17200.24001.4225d390.47540.62003.4103d150.22800.32001.5517d450.08000.08000.7917d160.16120.18002.2078d460.12170.14001.3659d170.26000.34002.6110d470.10000.10001.2987d180.31620.40003.3635d480.16000.16002.0780d190.48170.68003.3694d490.31620.44002.1271d230.10200.12001.1705d560.20100.22002.1520d240.08250.10000.6601d570.12810.18001.8990d250.16120.18001.4345d580.17890.24002.6482d260.05660.08000.8277d590.25460.36001.8449d270.14420.20001.2266d670.14420.20000.9689d280.19700.26001.9404d680.18440.26001.4149d290.39450.54002.6612d690.41230.54002.9389d340.18000.18001.7814d780.06000.06000.7792d350.26000.26002.5731d790.27200.34002.0832d360.06320.08000.4756d890.26080.28002.4183 如果我们要将这些距离按大小排序,如何快捷地如果我们要将这些距离按大小排序,如何快捷地实现?在实现?在Matlab中方法如下:中方法如下:F=sort(d);F,i=sort(d)其中其中sort(d)将将d中距离按从小到大排列,而中距离按从小到大排列,而i中各列中各列则指出了排序后各距离原来的序号则指出了排序后各距离原来的序号.i=13 13 13 15 15 2 14 14 15 7 6 7 2 7 11 6 9 12 8 2 10 9 8 14 12 10 8 10 12 6 11 1 3 1 11 4 5 3 5 3 5 1 4 4 9作业:作业:1.(1)输入)输入A,B,并计算各行列式的值,逆矩阵;并计算各行列式的值,逆矩阵;(2)A的行向量的协方差矩阵,的行向量的协方差矩阵,B的列向量的列向量 的相关系数矩阵的相关系数矩阵(3)计算)计算A列向量间各种距离,夹角余弦,哪两个向量更接近?列向量间各种距离,夹角余弦,哪两个向量更接近?(4)将矩阵)将矩阵A的各行向量标准化;并给出验证方法;的各行向量标准化;并给出验证方法;(5)求去掉)求去掉B的第一行与第三列后的矩阵的第一行与第三列后的矩阵C,求,求AC,C2,A.2 2.将下表给出的数据粘帖到将下表给出的数据粘帖到matlab,然后进行,然后进行各指标排序,从而得到各省、市、自治区的各各指标排序,从而得到各省、市、自治区的各指标排名矩阵指标排名矩阵D,安徽省排名如何?安徽省排名如何?地 区企业单位数工 业工 业实收资本资 产流动资产流动资产固定资产(个)总 产 值增 加 值合 计合 计年平均余额原价合计全全 国国3142327220.917128.1110256.7828354.4614029.7513750.9616700.30北 京10231318.03295.54410.091166.26715.76720.43503.53天 津13501365.99324.44553.061421.84746.63714.29759.44河 北760424.94122.38223.92625.90249.95234.68411.51山 西10174.7025.8171.94207.6749.9044.99141.82内蒙古8965.9220.1229.83122.2580.9178.0244.65辽 宁1070894.67238.90406.791097.95462.38447.83822.40吉 林245412.72121.57118.49353.28169.53145.29225.09黑龙江147114.8236.6760.26219.85103.00102.17118.40上 海36693904.801024.351655.584385.452332.522324.982331.17江 苏36013333.31835.681271.053311.921575.001557.562008.05浙 江27151532.12364.72503.431424.40747.77723.92794.17安 徽277246.8078.12149.86364.69141.13138.21251.70福 建29231822.48490.68689.961940.28894.00854.221179.72江 西177106.8729.4246.50139.4063.5864.8679.85山 东20201457.01431.75493.521397.82657.56621.88805.65河 南421262.1386.71117.83415.29199.36192.49303.22湖 北392382.38135.04196.03529.20214.44191.99311.53湖 南239147.1543.0572.96188.7779.8478.04137.53广 东90208490.962153.182658.907679.213940.623932.874614.89广 西238147.4344.9387.73248.7794.4291.86162.90海 南9440.5410.2529.4760.1226.7528.0634.33重 庆151179.8756.44119.17260.17110.92112.61208.34四 川268188.8360.12109.31287.94127.31117.23156.47贵 州7621.566.5923.0952.0527.5225.0120.75云 南12069.5922.3455.06125.8253.7853.3582.71西 藏50.040.020.330.500.200.180.28陕 西130140.7347.3267.25208.45105.3595.82123.96甘 肃3736.0210.2913.3955.5727.3927.3829.02青 海95.391.132.718.754.232.654.84宁 夏2419.366.4810.3027.5914.9015.2015.12新 疆3213.744.068.9927.3113.1312.9117.22在在Matlab中经常遇到下列运算:中经常遇到下列运算:A=1,2,3,4,若将若将A中每个元素都减去中每个元素都减去2,如何运算?如何运算?A-2可否?可否?A=1,2;3,4,若将若将A的每一行都减去的每一行都减去向量向量(1,2)如何运算?如何运算?A-(1,2)可否?可否?前者可以进行,后者不行,如何实现前者可以进行,后者不行,如何实现?特殊矩阵:特殊矩阵:ones:生成元素全为生成元素全为1的矩阵的矩阵zeros:生成元素全为:生成元素全为0的矩阵的矩阵eye:生成主对角元素为:生成主对角元素为1,其余元素为,其余元素为0矩阵矩阵A=1,2,3;4,5,6;7,8,0,如何实现各列元如何实现各列元素分别减去该列的均值?素分别减去该列的均值?解:解:A=1,2,3;4,5,6;7,8,0;B=B=A-ones(3,1)*mean(A)