版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab矩阵的生成与运算安徽工业大学数理学院侯为根1、直接输入法将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。A=1,2,3;4,5,6;7,8,0A=1,2,3;4 5,6;7,8 0087654321A【例1-2】 试输入复数矩阵需要防止的语句B=1+9*i,2+8*i,3+7*j; 4+6*j 5+5*i,6+4*i;7+3*i,8+2*i,iB=1 +9*i,2+8*i,3+7*j; 4+6*j 5+5*i,6+4*i;7+3*i,8+2*i,iiiiiiiiiiB28374655647382912、利用M文件
2、建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。【例1-3】利用M文件建立mymat矩阵。(1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.(2) 把输入的内容以纯文本方式存盘(设文件名为)。(3) 运行该M文件,就会自动建立一个名为mymat的矩阵,可供以后使用。A=4 10 1 6 2;8 2 9 4 7; 7 5 7 1 5;0 3 4 5 4;23 13 13 0 3 3、利用MATLAB函数建立矩阵几个产生特殊矩阵的函数:zeros、ones、 eye、rand、randn、pascal、 magic(n)、 vander(V)、 hilb(n) 、
3、toeplitz(x,y)、compan(P) 。这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:zeros(m) 产生mm零矩阵zeros(m,n) 产生mn零矩阵。zeros(size(A) 产生与矩阵A同样大小的零矩阵相关的函数有:length(A)给出行数和列数中的较大者,即length(A)=max(size(A);ndims(A)给出A的维数。指令指令说说 明明zeros(m,n)产生阶为产生阶为 mn, 元素全为元素全为0的矩阵的矩阵ones(m,n)产生阶为产生阶为 mn, 元素全为元素全为1的矩阵的矩阵eye(n)产生阶为产生阶为 nn的
4、单位阵的单位阵pascal(m,n)产生阶为产生阶为 mn 的的 Pascal 矩阵矩阵vander(m,n) 产生阶为产生阶为 mn 的的 Vandermonde 矩阵矩阵hilb(n)产生阶为产生阶为 nn 的的 Hilbert 矩阵矩阵rand(m,n)产生产生 0,1均匀分布的随机数矩阵均匀分布的随机数矩阵,其阶为其阶为 mnrandn(m,n)产生产生=0, =1的正态分布随机数矩阵的正态分布随机数矩阵,其阶为其阶为 mnmagic(n)产生阶为产生阶为nn的魔方阵的魔方阵diag(v)产生以向量产生以向量v为对角元素的对角阵为对角元素的对角阵【例1-4】 分别建立33、32和与矩阵
5、A同样大小的零矩阵。(1) 建立一个33零矩阵:zeros(3)(2) 建立一个32零矩阵:zeros(3,2)(3) 建立与矩阵A同样大小零矩阵:zeros(size(A)此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵。【例1-5】 将4阶魔方阵形变为2行8列的矩阵reshaps(magic(4),2,8)hilb(n)指令可以产生nn的 Hilbert 矩阵 11jiHij Hilbert矩阵Hilbert 矩阵的特性: 当矩阵变大时,其矩阵会接近奇异即矩阵的行列式会接近于0,Hilbert矩阵常被用来评估各种逆矩阵计算方法
6、的稳定性。【例1-6】 计算6阶hilbert矩阵的行列式det(hilb(6)x1 = rand(10000, 1);x2 = randn(10000, 1);subplot(2,1,1); hist(x1, 40); title(均匀分布);subplot(2,1,2); hist(x2, 40); title(高斯分布);set(findobj(gcf, type, patch),EdgeColor, w); % 改边线为白色 【例1-7】产生10000个均匀均匀与正态分布的随机数产生随机数矩阵指令rand 和 randn4、建立大矩阵大矩阵可由方括号中的小矩阵建立起来。A=1 2 3;
7、4 5 6;7 8 0; 冒号表达式的一般格式:v=s1:s2:s3还可以用linspace函数产生行向量:linspace(a,b,n)linspace(a,b,n)与与a:(b-a)/(n-1):b等价等价C=A,eye(size(A);ones(size(A),AA=A;1 2 3;1;2;3;4;【例1-8】使用小矩阵构造大矩阵【例1-9】 用不同的步距生成 (0,p) 间向量V1=0:0.2:piV3=0:-1:piV2=0:piV4=pi:-1:0V5=0:0.2:pi,piV7=0:pi/100:piV6=linspace(0,pi,100)二、对矩阵元素的操作矩阵A中,位于第i
8、行、第j列的元素可表示为A(i,j)i与j即是此元素的下标Subscript或索引Index MATLAB中所有矩阵的内部表示法都是以列为主的一维向量A(i,j)和A(i+(j-1)*m)是完全一样的m为矩阵A的列数 1、矩阵的索引或下标我们可以使用一维或二维下标来存取矩阵A=4 10 1 6 2;8 2 9 4 7; 7 5 7 1 5;0 3 4 5 4;23 13 13 0 3 2 、矩阵元素MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。例如 A(3,2)=200也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。以mn矩阵A为例,矩阵元素A
9、(i,j)的序号为:(j-1) *m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。(1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。 利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。 B1=A(1:2:end,:)B3=A
10、(:,end:-1:1)B2=A(3,2,1,2:4)A(:,2,4)=ones(4,2) 4、利用空矩阵删除矩阵的元素在MATLAB中,定义 为空矩阵。给变量X赋空矩阵的语句为X= 。【注意】X= 与clear X不同,clear是将X从工作空间中删除,而空矩阵那么存在于工作空间,只是维数为0。将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。【例2-2】A(2,3,:=fliplr(Aflipud(A)rot90(A) rot90(rot90(A) A=1 2 3 4;5 6 7 8;9 10 11 12A1=diag(A)A2=diag(A,1)A3=diag(A,-1
11、)B1=diag(A1,1)B2=diag(A3,1)6 选取对角元素7 选取上下三角元阵c1=tril(A)c2=tril(A,1)c3=tril(A,-1)d1=triu(A)d2=triu(A,1)D3=triu(A,-1) 1. 根本算术运算矩阵的数学运算矩阵的数学运算 A = 12 34 56 20;B = 1 3 2 4;C = A + BC1= A-B 例1: 加减法运算矩阵与纯量可以直接进行加减,MATLAB 会直接将加减应用到每一个元素 A=1 2 3 2 1 + 5A = 1 2 3; 4 4 2; C = A/3 B = 2*AA = 1; 2; B = 3, 4, 5;
12、 C = A*B A = magic(3);B = A2例3:i = sqrt(-1);% 单位虚数单位虚数z = 1+i, 2; 3, 1+2i;w = z % 共轭转置共轭转置(注意注意z后面的单引号后面的单引号) 例4: 矩阵矩阵共轭转置i = sqrt(-1);% 单位虚数单位虚数z = 1+i, 2; 3, 1+2i;w = z.% 单纯转置单纯转置(注意注意z后面的句点及单引号后面的句点及单引号)A =1 2 3;4 5 6;7 8 0B = A.ABAC* .ijijijbac 087654321AAAB. 31. 规那么:设X=(xij)mn,那么 f (X)=(f (xij)
13、mnsin cos tan cot sec csc asin acos atan acot asec acsc2. 常用数学函数三角与反三角与反三角函数三角函数exp log log10 sqrt pow2ceil fix floor round rem signabs angle conj imag real指数与对数指数与对数复变函数复变函数取整函数取整函数cart2sph cart2pol pol2cart sph2pol 坐标转换坐标转换注:假设要对函数进行矩阵运算,方法为:funm(X,f)size(A) %矩阵的大小inv(A) %矩阵的逆det(A) %矩阵的行列式rank(A)
14、 %矩阵的秩rref(A) %矩阵列的极大无关组orth(A) %矩阵化为正交阵trace(A) %矩阵的迹chol(A) %三角分解,A=L*LTlu(A) %A对称,A=L*U U,S,V=svd(A) %A=U*S*Vqr(A) %A=q*r(q正交阵正交阵,r三角阵三角阵norm(A,1|2|p|inf|fro) %矩阵的模cond(A) %矩阵的条件数eig(A) %A*x= *xV,D=eig(A) %A*V=V*Deig(A,B) %A*x= *B*xV,D=eig(A,B) %A*V=B*V*D例:设A=pascal(4),B=magic(4),并使用以下函数进行计算向量的向量
15、的p-norm11ip,aa/ppipp=2 时,此即为向量 a 的长度,或称欧氏长度Euclidean Length 欲求一向量的p-norm,可使用norm指令norm(x,p)a = 3 4;x = norm(a, 1) % x = 7y = norm(a, 2) % y = 5z = norm(a, inf) iia)norm(a,1ia)norm(a,imaxinf 注意: 矩阵A的p-norm可以定义如下:ppxpxAxAmax例9: normMatrixnorm 指令亦可用于计算矩阵的 p-normA = 1 2 3; 4 5 6; 7 8 9;norm(A, 2)MATLAB的
16、关系运算符总是以矩阵内元素对元素的方式作运算,比较两元素之间关系:假设成立结论为1,否那么为0a=3; b=5;a5aba=b关系运算符的用法A=1 2 3; 4 5 6;7 8,0b=A5A(b)3、同维矩阵间比较;返回0-1矩阵2、矩阵与一数比较返回0-1矩阵B=magic(3);BAfind指令 : 可传回非零元素索引,显示一维索引或下标 元素索引元素索引index=find(A5) 可以将关系运算符返回的0-1矩阵,来进行矩阵的索Indexing求出在A矩阵中,满足AijBij的元素 x = 0 1 2; 0 0 3 index = find(x) x(index) x(index)那
17、么是非零元素所形成的向量那么是非零元素所形成的向量 要找出满足某条件的二维索引或下标2维索引idx1,idx2=find(x5) idx1和idx2分别是符合条件之矩阵元素的列索引(Row Index)及行索引(Column Index)例:如何找出介于7和11的元素?x = magic(5)x(find(7x&x11) 【例2.4 】产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除并取出这些元素。 (1) 生成5阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2) 判断A的元素是否可以被3整除。P=rem(A,3)=0(3) 取
18、出A中能被3整除的元素。A1=A(P)MATLAB提供了3种逻辑运算符:&(与)、|(或)、(非)和xor。设A与B为两个命题 A&BA|BAXor(A,B)数值为1那么为True,数值为0那么为False当所有向量元素为真(非零),那么all指令传回1,否那么为0。当任一向量元素为真(非零),那么any指令传回1,否那么为0。 相关的指令有all及any:a = 0 1 2 3 result1 = all(a)retult2 = any(a)result3 = any(a0) 范例all 及 any 指令也可以接受矩阵输入,此时他们会对每一个行向量进行运算 方法方法1:x=0
19、:pi/100:3*pi; y=sin(x);y1=(x2*pi).*y; %消去负半波消去负半波q=(xpi/3&x7*pi/3&x=0).*y; %消去负半波消去负半波p=sin(pi/3);y2=(y=p)*p+(y=a&t=a&t=z)转置:z=安徽工业大学安徽工业大学 whos zz=z+1char(z)clear all % 去除所有变量去除所有变量for i = 3:6eval( x,int2str(i),. =magic(,int2str(i),);); end whos x* chinese=今日事,今日毕今日事,今日毕out1=class(c
20、hinese)%out1的值是的值是“char,代表,代表chinese是字符串变是字符串变量量x = chinese+1;out2 = ischar(x) %out2的值是的值是0,代表,代表x不是一个字符串变量不是一个字符串变量 departments=ee ;cs ;econ %注意空格符的使用 departments=char(ee,cs,econ) %注意注意“()及及“,的使用的使用 departments = char(ee,cs,econ) dept1 = departments(1,:) % (1,:)代表第一列的元素代表第一列的元素 dept2 = deblank(dept
21、1) % 使用使用 deblank 指令来移除尾部的空格符指令来移除尾部的空格符 len1 = length(dept1) % 显示变量显示变量 dept1 的长度的长度=4 len2 = length(dept2) % 显示变量显示变量 dept2 的长度的长度=2 str1 = today; str2 = tomorrow; str3 = today; out1 = strcmp(str1, str2) % 比较两字符串 str1 和 str2 = 0out2 = strcmp(str1, str3) % 比较两字符串 str1 和 str3 = 1 strcmp(s1,s2): 比较串比较串s1和和s2,相等返回相等返回1,否那么为否那么为0strncmp(s1,s2): 用于比较用于比较s1,s2的前的前n个字符个字符 strrep(s,s1,s2): find
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CPIA 0064-2024光伏封装胶膜表面粗糙度测试方法
- T/TIC 004-2023生态环境监测机构综合能力评价通用规范
- T/FSHW 05-2025道路保洁质量与作业规范
- T/CI 1481-2026农民用水合作组织运行制度设计规程
- T/CAAMTB 191-2024车用70MPa加氢口性能试验方法
- T/CPF 0114-2025温室气体 产品碳足迹量化方法与要求 成型纸盒
- 2025~2026学年安徽省阜阳市临泉县校联考北师大版六年级上册11月期中数学试卷【附答案】
- 2025-2026学年陕西省咸阳市初中政治八年级期末下册自测专项攻坚题附答案
- 人工智能在生物多样性监测中的应用
- Photoshop基础技能考核试题(含详细答案)
- 《绿色设计产品评价技术规范氯化钾》
- 临床血液保护管理制度
- YC/T 370-2023烤烟中非烟物质控制技术规程
- 2025江苏盐城燕舞集团有限公司招聘58人笔试参考题库附带答案详解析
- 试卷答题规范化主题班会
- 植物拓印艺术课件
- 《大学生创业基础》说课
- 学困生帮扶措施
- 普外专业 三甲医院临床试验机构GCP 2024版普外专业002 试验方案设计规范
- DB32-T 4870-2024 中医膏方临床应用与制备工艺规范
- 中国电信通信技术类笔试题
评论
0/150
提交评论