MATLAB矩阵学习教程.pptx
《MATLAB矩阵学习教程.pptx》由会员分享,可在线阅读,更多相关《MATLAB矩阵学习教程.pptx(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四讲 MATLABMATLAB矩阵运算 MATLAB MATLAB 具有出色的矩阵运算能具有出色的矩阵运算能力,可以解决线性代数中关于矩阵的力,可以解决线性代数中关于矩阵的一切运算!一切运算!第1页/共105页引例:一个实际问题 某食品厂收到某种食品的订单,要求这种食品由甲、乙、丙、丁四种原料做成,且该食品中含蛋白质、脂肪和碳水化合物的比例分别为1515、5 5和1212。而甲、乙、丙、丁原料中含蛋白质、脂肪和碳水化合物的百分比由下表给出。第2页/共105页一个实际问题甲甲乙乙丙丙丁丁蛋白质()蛋白质()2020161610101515脂肪()脂肪()3 38 82 25 5碳水化合物碳水化
2、合物1010252520205 5问:如何用这四种原料配置出满足要求的食品?第3页/共105页方程的建立第4页/共105页分析方程组的解u需要研究线性方程组的下列几个问题:u方程组是否有解?有解时,解的个数是多少?如何解?也就是解的存在性和唯一性问题。u有多解时,这些解之间的关系如何?所得的解针对实际问题是否合理?u无解时,如何找出最接近实际问题的近似解?第5页/共105页线性方程组解的情况第6页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第7页/共105页一、变量和数据操作1.变量命名u在MATLAB MATLAB 中,变量名是以字母开头,后
3、接字母、数字或下划线的字符序列,但不得使用空格和标点符号,最多6363个字符。如my_var_201my_var_201是合法的变量而my,var201my,var201就不是变量名第8页/共105页变量命名命名规则(续)u在MATLAB中,变量名区分字母的大小写,如变量myvar和MyVar表示两个不同的变量,sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。第9页/共105页2 2赋值语句格式:变量=表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。如:X=3;X=1 2;3 4;Z=a+X:X=3;X=1 2;3 4;Z=a+X第10页/共105页2
4、 2赋值语句(续)注:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖 。注:当一个指令或矩阵太长时,可用,续行第11页/共105页3.预定义常量u在MATLABMATLAB工作空间中,还驻留几个由系统本身定义的常量。例如,用pipi表示圆周率的近似值,用i i,j j表示虚数单位。u预定义常量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。uMATLABMATLAB预定义的变量还有ans,eps(ans,eps(机器零阀值),Inf/inf,NaN/nan,realmax,realmin),Inf/inf,NaN/n
5、an,realmax,realmin第12页/共105页附:MATLABMATLAB中常见的预定义变量表第13页/共105页实例演示例:计算下列表达式的值,并显示计算结果。x=1+2i;x=1+2i;y=3-sqrt(17);y=3-sqrt(17);z=(cos(abs(x+y)-z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)sin(78*pi/180)/(x+abs(y)其中pipi和i i都是MATLABMATLAB预先定义的变量,表示圆周率和虚数单位。输出结果是:z=-0.3488+0.3286iz=-0.3488+0.3286i第14页/共105页4
6、.4.内存变量的管理1)1)内存变量的删除与修改 MATLABMATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击DeleteDelete按钮,就能删除这些变量。当选中某些变量后,再单击OpenOpen按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。第15页/共105页4.内存变量的管理u2)clear2)clear命令-用于删除MATLABMATLAB工作空间中的变量。(注意与clcclc命令的区别)u3)who3)who和whoswhos命令-用于显示在MATLABMATLAB工作
7、空间中已经驻留的变量名清单。uwhowho命令只显示出驻留变量的名称uwhoswhos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。第16页/共105页4.内存变量的管理u4)4)保存和加载内存变量文件u常用格式为:save save 文件名 变量名表 load load 文件名 变量名表 第17页/共105页4.内存变量的管理u注1 1:变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。u注2 2:内存变量文件的扩展名为.mat.mat。MATMAT文件的生成和装入由savesave和loadload命令来完成
8、。第18页/共105页5.5.数据的输出格式uMATLABMATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法(如3.5e5)3.5e5)两种表示方法。u 在一般情况下,MATLABMATLAB内部每一个数据元素都是用双精度数来表示和存储的。第19页/共105页5.5.数据的输出格式u数据输出时用户可以用formatformat命令设置或改变数据输出格式,uformatformat命令的格式为:format+:format+格式符注:格式符决定数据的输出格式,格式符的形式可以为 compact;losse;bank;compact;losse;bank;short;long;s
9、hort e;long eshort;long;short e;long e等。u实例:以不同的格式显示pipi的值第20页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第21页/共105页MATLABMATLAB矩阵简介u从结构上讲,矩阵(数组)是MATLABMATLAB数据存储的基本单元。u从运算角度讲,矩阵形式的数据有多种运算形式,例如向量运算,矩阵运算,数组运算等。第22页/共105页二、矩阵的创建1.1.直接输入法u最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间
10、用空格或逗号分隔,不同行的元素之间用分号分隔。如果只输入一行则就形成一个数组(又称作向量)ua=1 2 3;4 5 6 b=1 2 3 4 5 6a=1 2 3;4 5 6 b=1 2 3 4 5 6第23页/共105页二、矩阵的创建u注:矩阵或数组中的元素可以是任何MATLABMATLAB表达式 ,可以是实数 ,也可以是复数。u例如 x=2 pi/2;sqrt(3)3+5ix=2 pi/2;sqrt(3)3+5i第24页/共105页二、矩阵的创建2.2.利用M M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M M文件。例 mymatrix1.mmymatrix1.m 第25
11、页/共105页利用M M文件建立矩阵(续)对以文本格式存储的数据MATLABMATLAB也可以使用相关命令读取数据。详细信息同学们可以参阅MATLABMATLAB帮助信息!相关命令有 dlmread;textread;fopendlmread;textread;fopen等命令第26页/共105页二、矩阵(数组)的创建3.3.利用冒号表达式建立一个数组(向量)注意向量也是特殊的矩阵 一般格式是:e1:e2:e3e1:e2:e3其中e1e1为初始值,e2e2为步长,e3e3为终止值第27页/共105页冒号表达式创建矩阵(续)u注:e3e3为尾元素数值限,而非元素值。u 如x=1x=1:2 2:7
12、 7u 若步长e2e2为1 1,则可省略此项输入。u 如x=1:5x=1:5u 若e1e1小于e3e3则e2e2必须大于0 0,如x=1:2:12x=1:2:12u 若e1e1大于e3e3则e2e2必须小于0,0,如x=12:-2:1x=12:-2:1u 若e1e1等于e3e3则只有一个元素,u 如x=1:2:1x=1:2:1则只输出1 1第28页/共105页二、创建矩阵u4.4.采用定数线性采样函数产生向量u调用格式为:x=linspace(a,b,n)x=linspace(a,b,n)u其中a a和b b是生成向量的第一个和最后一个元素,n,n是元素总数。u作用:a a和b b之间产生一个
13、等分的n n维向量,如果省略n,n,则系统默认n n等于100.100.u如:x=linspace(1,100,6);x=linspace(1,100,6);x=linspace(1,100)x=linspace(1,100)第29页/共105页定数线性采样函数产生向量(续)注:它与冒号表达式的区别是:linspacelinspace是维数已知的情况下产生向量,冒号表达式是维数未知,间隔已知。第30页/共105页二、创建矩阵u5.5.采用定数对数采样函数产生向量u调用格式为:y=logspace(a,b,n);y=logspace(a,b,n);u其中a a和b b是生成向量的第一个和最后一个
14、元素,n,n是元素总数。u作用:是10a10a和10b10b之间产生一等分的n n维向量,如果省略n,n,则系统默认n n等于50.50.第31页/共105页定数对数采样函数产生向量(续)u如x=logspace(0,5,6);x=logspace(0,5)x=logspace(0,5,6);x=logspace(0,5)u注:此命令主要用在数字信号处理中,在其中又时需要产生对数刻度坐标第32页/共105页 5.5.用MATLABMATLAB函数创建矩阵u空阵 MATLAB MATLAB允许输入空阵,当一项操作无结果时,返回空阵。urand()rand()随机矩阵 ,元素值在(0 0,1 1)
15、内u思考:如何创建一个在任意区间(a,ba,b)上取值的随机矩阵ua+(b-a)*rand()a+(b-a)*rand()ueye()eye()单位矩阵?第33页/共105页5.用MATLAB函数创建矩阵uzeros()zeros()全部元素都为0 0的矩阵;uones()ones()全部元素都为1 1的矩阵;urandn()randn()产生均值为0 0,方差为1 1的标准正态分布随机矩阵。u注:randn(state,0)randn(state,0)表示将正态随机数发生器置0 0第34页/共105页5.用MATLAB函数创建矩阵u注:()()中如果输入(m m,n n)则说明产生一个m m
16、行n n列的矩阵(eye()eye()函数除外)u如果输入(m m)则产生一个m m行m m列的方阵u如果输入(m,n,p,m,n,p,)则产生m*n*p*m*n*p*阶的矩阵(此项用在产生高维矩阵)u如果输入(size(A)size(A))则产生一个与A A大小相同的矩阵第35页/共105页4.用MATLAB函数创建矩阵 注:还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,这些特殊矩阵在MATLABMATLAB中有专门的函数可以建立,在此就不一一介绍了。特殊矩阵的建立见相关MATLABMATLAB参考书或帮助文件。第36页/共105页实例演示例:建立与矩阵A A同样大小的零矩
17、阵。设矩阵A A为2323矩阵。具体命令如下:A=1 2 3;4 5 6;A=1 2 3;4 5 6;%产生一个2323阶矩阵A Azeros(size(A)zeros(size(A)%产生一个与矩阵A A同样大小的零矩阵第37页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第38页/共105页1.1.矩阵和数组拆分u1.1.利用冒号表达式可获得一矩阵的子矩阵uA(i)A(i)表示取数组或者矩阵的第i i个元素(矩阵的元素是按列排序)uA(i,j)A(i,j)表示取A A矩阵第i i行、第j j列的元素uA(e1:e2:e3)A(e1:e2:e3
18、)表示取数组或矩阵A A的第e1e1元素开始每隔e2e2步长一直到e3e3的所有元素第39页/共105页1.1.矩阵和数组拆分uA(m n l)A(m n l)表示取数组或矩阵A A中的第m,m,n,ln,l个元素uA(:,j)A(:,j)表示取A A矩阵的第j j列全部元素;uA(i,:)A(i,:)表示A A矩阵第i i行的全部元素;uA(i:i+m,:)A(i:i+m,:)表示取A A矩阵第i ii+mi+m行的全部元素;第40页/共105页1.1.矩阵和数组拆分uA(:,k:k+m)A(:,k:k+m)表示取A A矩阵第k kk+mk+m列的全部元素;uA(i:i+m,k:k+m)A(
19、i:i+m,k:k+m)表示取A A矩阵第i ii+mi+m行内,并在第k kk+mk+m列中的所有元素;u例:建立一个5 5阶的魔方矩阵,完成有关矩阵的寻访操作第41页/共105页1.1.矩阵和数组拆分u注:还可利用一般向量和endend运算符来表示矩阵下标,从而获得子矩阵。endend表示某一维的末尾元素下标。uA(i,end)A(i,end)表示取A A矩阵i i行的最后一个元素uA(end,j)A(end,j)表示取A A矩阵j j列的最后一个元素uA(i:end)A(i:end)表示取矩阵第i i个元素到最后一个元素第42页/共105页1.矩阵和数组拆分u2.2.对角元素抽取函数di
20、agdiagudiag(X,k)-diag(X,k)-抽取矩阵X X的第k k条对角线的元素,uk=0k=0时即为抽取主对角线,k0 k0时为上方第k k条对角线,k0 k0时为下方第k k条对角线 (注意矩阵对角线的计数方法)udiag(X)-diag(X)-相当于diag(X,0)diag(X,0)第43页/共105页diagdiag命令(续)u注:diag命令还可以用来建立对角矩阵(先要给出主对角线上 的元素)udiga(v,k)-使向量v为所得矩阵的第k条对角线元素udiag(v)-使得v为矩阵的主对角元素第44页/共105页实例演示u利用初等变化求矩阵的秩第45页/共105页步骤详解
21、uA=1-2-1 0 2;-2 4 2 6-6;2-1 A=1-2-1 0 2;-2 4 2 6-6;2-1 0 2 3;3 3 3 3 4;%0 2 3;3 3 3 3 4;%输入矩阵数据uA(2,:)=A(2,:)+2*A(1,:);A(2,:)=A(2,:)+2*A(1,:);%将第一行乘2 2加到第2 2行上uA(3,:)=A(3,:)-2*A(1,:);A(3,:)=A(3,:)-2*A(1,:);%将第一行乘-2-2加到第3 3行上uA(4,:)=A(4,:)-3*A(1,:);A(4,:)=A(4,:)-3*A(1,:);%将第一行乘-3-3加到第4 4行上第46页/共105页步
22、骤详解uA(2 3,:)=A(3 2,:);A(2 3,:)=A(3 2,:);%交换第二行和第三行的数据uA(3 4,:)=A(4 3,:);A(3 4,:)=A(4 3,:);%交换第三行和第四行的数据uA(3,:)=A(3,:)-3*A(2,:);A(3,:)=A(3,:)-3*A(2,:);%将第二行乘以-3-3加到第三行上uA(4,:)=A(4,:)+2*A(3,:);A(4,:)=A(4,:)+2*A(3,:);%将第三行乘以2 2加到第四行上第47页/共105页实例演示u对角元素抽取函数diagdiag实例ua=pascal(4)%a=pascal(4)%产生一个4 4阶pasc
23、alpascal矩阵uV=diag(a)%V=diag(a)%抽取矩阵a a的主对角元素uV=diag(a,2)%V=diag(a,2)%抽取矩阵a a的第二条对角线上的元素uV=diag(diag(a)%V=diag(diag(a)%使的diag(a)diag(a)为矩阵的主对角元素,其余元素为0 0第48页/共105页2.2.矩阵的修改1 1)直接修改:可用 键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。2 2)指令修改:可以用A(A(,)=)=来修改。第49页/共105页2.矩阵的修改3 3)利用空矩阵删除矩阵的元素在MATLABMATLAB中,定义为空矩阵。给变量X X赋
24、空矩阵的语句为X=X=。注:X=X=与clear Xclear X不同,clearclear是将X X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0 0。第50页/共105页实例演示例如:a=1 2 0;3 0 5;7 8 9a=1 2 0;3 0 5;7 8 9a=1 2 0a=1 2 0 3 0 5 3 0 5 7 8 9 7 8 9a(3,3)=0a(3,3)=0a=1 2 0a=1 2 0 3 0 5 3 0 5 7 8 0 7 8 0第51页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第52页/共105页1.矩阵加、减(,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 矩阵 学习 教程
限制150内