《二讲矩阵的输入与生成.ppt》由会员分享,可在线阅读,更多相关《二讲矩阵的输入与生成.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Matlab语言程序设计2/26/20232/26/20231第二讲 矩阵的输入与生成2.1 矩阵的创建2.2 数组的生成2.3 数组的应用矩阵的裁剪2.4 矩阵的生成2/26/202322.1 矩阵的创建直接输入矩阵通过函数创建矩阵导入数据创建矩阵2/26/20233直接输入a=1,2,3;4,5,6;注:1.必须使用方括号 2.当一行输不完时可以用续行“”3.行与行之间用分号或回车符分隔 4.同行元素用空格或逗号分隔 5.该方法只适合创建小型矩阵2/26/20234通过函数创建矩阵 对于一些特殊矩阵,可利用Matlab的函数创建。例1:x=0,pi/6,pi/3;pi/2,2*pi/3,5
2、*pi/6;y=sin(x)y=0 0.5000 0.8660 1.0000 0.8660 0.50002/26/20235导入数据创建矩阵 通过其他途径得到的数据(例如实验中测得的数据)可以使用数据导入向导(Import Wizard)调入Matlab的工作空间。2/26/202362.2数组的生成 Matlab中的数组在外观上与矩阵毫无差别,也就是说矩阵的输入方法可以直接移植到数组的输入上。同样,下述关于数组的生成方法也可以用来生成矩阵。2/26/202372.2数组的生成i:k 创建从i开始,步长为1,到k结束的数字序列,即i,i+1,i+2,k。如果ik,M AT L A B则返回一个
3、空矩阵,也就是。数字i和k不必是整数,该序列的最后一个数是小于或等于k。i:j:k 创建从i开始,步长为j,到k结束的数字序列,即i,i+j,i+2j,k。如果j=0,则返回一个空矩阵。数字i、j和k不必是整数,该序列的最后一个数是小于或等于k。2/26/202382.2数组的生成linspace(a,b)在区间a,b上创建一个有1 0 0个元素的向量,这1 0 0个数把整个区间线性分隔。linspace(a,b,n)在区间a,b上创建一个有n个元素的向量。这个命令和冒号表示形式相近,但是它直接定义了数据的个数。2/26/202392.2数组的生成logspace(a,b)在区间 上创建一个有
4、50个元素的向量,这50个数把整个区间对数分隔。logspace(a,b,n)在区间 上创建一个有n个元素的数组,这n个数把整个区间对数分隔。2/26/2023102.2数组的生成注:以上关于数组生成的命令经常用于作图,如:x=linspace(0,pi);%生成数组 y=sin(x);%计算函数 plot(x,y);%作图2/26/2023112.3 数组的应用矩阵的裁剪A(i,j,k)返回多维数组A中下(i,j,k)的元素值。A(:,j)返回二维矩阵A中第j列列向量。A(i,:)返回二维矩阵A中第i行行向量。A(:,j:k)返回由二维矩阵A中的第j列,第j+1列,直到第k列列向量组成的子阵
5、。2/26/2023122.3 数组的应用矩阵的裁剪A(i:k,:)返回由二维矩阵A中的第i行,第i+1行,直到第k行行向量组成的子阵。A(i:k,j:l)返回由二维矩阵A中的第i行到第k行行向量和第j列到第l列列向量组成的子阵。A(:)将矩阵A中的每列合并成一个长的列向量。A(j:k)返回一个行向量,其中的元素为A(:)中的从第j个元素到第k个元素。2/26/2023132.3 数组的应用矩阵的裁剪A(j1 j2 )返回一个行向量,其中的元素为A(:)中的第j1、j2元素。A(:,j1 j2)返回矩阵A的第j1列、第j2列等的列向量。A(i1 i2,:)返回矩阵A的第i1行、第i2行等的行向
6、量。A(i1 i2.,j1 j2.)返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素。2/26/2023142.4 矩阵的生成ones(n)建立一个nxn的1矩阵。ones(m,n)建立一个mxn的1矩阵。ones(size(A)建立一个和矩阵A同样大小的1矩阵。zeros(n)建立一个nxn的0矩阵。zeros(m,n)建立一个mxn的0矩阵。2/26/2023152.4 矩阵的生成zeros(size(A)建立一个和矩阵A同样大小的0矩阵。eye(n)建立一个nxn 的单位矩阵。注意eye命令只能用来建立二维矩阵。eye(m,n)建立一个mxn 的单位矩阵。注意e y e命令只能用
7、来建立二维矩阵。eye(size(A)建立一个和矩阵A同样大小的单位矩阵。2/26/2023162.4 矩阵的生成rand 产生在01之间均匀分布的随机数;每调用一次给一个新的数值。rand+i*rand 产生一个复数随机数。rand(n)产生一个nxn的矩阵,其元素为01之间均匀分布随机数。rand(m,n)产生一个mxn的矩阵,其元素是01之间均匀分布的随机数。2/26/2023172.4 矩阵的生成randn 产生零均值、单位方差的正态分布随机数。randn(n)产生一个nn的矩阵,其元素为零均值、单位方差的正态分布随机数。randn(m,n)产生一个mn的矩阵,其元素为零均值、单位方差
8、的正态分布随机数。2/26/2023182.4 矩阵的生成diag(A)生成一个由矩阵A主对角线元素组成的列向量。主对角线总是从矩阵左上角开始。对于方阵来说它结束于矩阵的右下角。diag(x)生成一个n维的方阵,它的主对角线元素值取自向量x,其余元素的值都为0。2/26/2023192.4 矩阵的生成diag(A,k)生成一个由矩阵A第k条对角线的元素组成的列向量。k=0为主对角线;k 0为上第k对角线。diag(x,k)生成一个(n+abs(k)维的方阵,该矩阵的第k条对角线元素取自向量x,其余元素都为零。2/26/2023202.4 矩阵的生成triu(A)生成一个和A大小相同的上三角矩阵
9、。该矩阵的主对角线及以上元素取自A中相应元素,其余元素都为零。triu(A,k)生成一个和A大小相同的上三角矩阵。该矩阵的第k条对角线及以上元素取自A中相应元素,其余元素都为零。命令triu(A,0)等同于命令triu(A)。2/26/2023212.4 矩阵的生成tril(A)生成一个和A大小相同的下三角矩阵。该矩阵的主对角线及以下元素取自A中相应元素,其余元素都为零。tril(A,k)生成一个和A大小相同的下三角矩阵。该矩阵的第k条对角线及以下元素取自A中相应元素,负数k表示主对角线下的对角线。其余元素都为零。命令tril(A,0)等同于命令tril(A)。2/26/2023222.4 矩
10、阵的生成fliplr(A)通过二维矩阵A的行元素按照B(I,j)=A(j,n-j+1)交换位置生成一个新矩阵。这里的lr是left-right的缩写。flipud(A)通过二维矩阵A的列元素按照B(i,j)=A(n-i+1,j)交换位置生成一个新矩阵。这里的ud是up-down的缩写。2/26/2023232.4 矩阵的生成rot90(A)生成一个由矩阵A逆时针旋转90而得的新阵。rot90(A,k)生成一个由矩阵A逆时针旋转k90而得到的新阵。2/26/2023242.4 矩阵的生成hilb(n)生成一个nn的希尔伯特矩阵。invhilb(n)生成一个nn的希尔伯特矩阵的逆矩阵,其元素都为整数。magic(n)给出一个nn的魔方矩阵。pascal(n)返回一个nn的P a s c a l矩阵,它是对称、正定的矩阵,它的元素由Pascal三角组成。它的逆矩阵的所有元素是整数。2/26/202325