




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab输入输出格式及矩阵运算,在运算式中常需要做数据的输入及输出,采用的方式可以是交谈式的或是指定格式。,输入及输出交谈式的输入输出格式,Matlab输入及输出格式,我们来看一个例子,计算面积Area=可利用指令input在萤幕印出提示文字做为交谈式的输入。r=input(Typeradius:)%在两个单引号之间键入提示文字Typeradius:%现在键入2做为半径值r=2area=pi*r2;%键入面积算式,交谈式的输入,name=input(Yournameplease:,s)%要键入文字则须在加上s,s是代表字串(string)Yournameplease:%键入名字J.C.Wuname=J.C.Wu,输出格式,至于输出有二种格式:自由格式(disp)和格式化输出(fprintf)。要直接输出文字或是一数值,可使用disp,例如temp=20;disp(temp);disp(degreesC);disp(度C)%中文也接受呢!20degreesC度C,而指令fprintf则是用来控制输出数据及文字的格式,它的基本格式如fprintf(Theareais%8.5fn,area)在二个单引号间包括输出的字串Theareais,接著是输出数据的格式%8.5f,再来是跳行符号以避免下一个输出数据或是提示符号也挤在同一行,最后键入要输出的数据名area。Theareais12.56637%输出值为8位数含5位小数注意输出格式前须有%符号,跳行符号须有符号,在此要稍加说明的是输出数据的格式,以下的例子各说明了不同型态的输出格式fprintf(f_form:%12.5fn,12345.2)%输出值为12位数,含5位小数f_form:12345.20000fprintf(f_form:%12.3fn,1.23452)%输出值为12位数,含3位小数f_form:1.235,fprintf(e_form:%12.5en,12345.2)%输出值为指数格式的12位数,含5位小数e_form:1.23452e+004fprintf(f_form:%12.0fn,12345.2)%输出值为整数格式的12位数f_form:12345,MATLAB常用的三角函数sin(x):正弦函数asin(x):反正弦函数cos(x):余弦函数acos(x):反余弦函数tan(x):正切函数atan(x):反正切函数sinh(x):超越正弦函数asinh(x):反超越正弦cosh(x):超越余弦函数acosh(x):反超越馀弦函数tanh(x):超越正切函数函数atanh(x):反超越正切函数,变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Rowvector)运算:,x=1352;y=2*x+1y=37115,变数命名的规则1.第一个字母必须是英文字母2.字母间不可留空格3.最多只能有19个字母,MATLAB会忽略多余字母,Matlab矩阵运算,x=1352;y=2*x+1y=37115,我们可以随意更改、增加或删除向量的元素:,y(3)=2%更改第三个元素,y=3725,y(6)=10%加入第六个元素,y=3725010,y(4)=%删除第四个元素,y=372010,MATLAB会忽略所有在百分比符号(%)之后的文字,因为百分比之后的文字为程式的注解(Comments)。,MATLAB亦可取出向量的一个元素或一部份来做运算:,x(2)*3+y(4)%取出x的第二个元素和y的第四个元素来做运算ans=9,y(2:4)-1%取出y的第二至第四个元素来做运算ans=61-1在上例中,2:4代表一个由2、3、4组成的向量,若对MATLAB函数用法有疑问,可随时使用help来寻求在线帮助(on-linehelp):,MATLAB的查询命令,help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入helpinv即可得知有关inv命令的用法。(键入helphelp则显示help的用法,请试看看!),lookfor:用来寻找未知的命令。例如要寻找计算逆矩阵的命令,可键入lookforinverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的命令后,即可用help进一步找出其用法。(lookfor事实上是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对。),A-3MATLAB基本功能,我们下面给出一些MATLAB的常用的功能,这只是MATLAB及其众多TOOLBOX中的极少极少部分。用户可以参阅有关MATLAB的手册,或直接在MATLAB系统中用HELP命令查阅其它功能。,MATLAB的主要线性代数运算如表A1所示为常用的矩阵和线性代数运算函数,用户可以用helpmatfun获得更多内容,表A1常用线性代数函数,上面所列的都是有关矩阵的操作函数。如eig(A)可求出A的特征根及其特征向量,具体执行方法为:输入A矩阵A=01;-6-5A=01-6-5E=eig(A)%求出方阵A的特征根EE=-2-3,%求出方阵A的特征向量V及其A的对角型DV,D=eig(A)V=0.4472-0.3162-0.89440.9487D=-200-3,考虑一个“数学问题”,该问题用半数学语言描述就是:如何生成一个3x3矩阵,并将自然数1,2,.,9分别置成这9个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。,这样的矩阵称为“魔方矩阵”。用MATLAB的magic()函数,我们可以由下面的命令立即生成这样的矩阵:A=magic(3)A=816357492,还可以由B=magic(10)一次生成10 x10的魔方矩阵。如果想求出矩阵的行列式和特征值,可以分别由det(B)与eig(B)立即得出结果,而同样的工作在C下并不是很简单就可以得出的,算法选择不好,还可能得出错误的结果。,Considerthesystemoflinearequationsgivenby,Thesolutiontothesystemisgivenby,InMatlabtherearetwowaysofsolvingthisproblem.,CalculatetheinverseofA(A-1),thenfindxbyleft-multiplicationofbwithA-1.,Left-divisionofbwithA,Inthefirstcasethefunctioninv(A)isusedtofindtheinverse.Thisisthenmultipliedbyb.TheMatlabcodeforthisoperationis,Inthesecondcaseleft-divisionisperformedstraightawaywiththecommand,X=9.25004.25002.7500,A=rand(1000,1000);%Createsarandom%matrixAb=rand(1000,1);%Createsarandom%vectorbdet(A)%CalculatesthedeterminantofAtic,%Startsthetime-watchx=inv(A)*b;%Solvesthesystemtoc%Stopsthewatchtic,y=Ab;toc%Solvesandtimesthesystem%withleftdivision,前一节提到阵列产生的方式须个别键入其元素,这方法只适用于阵列元素很少时。如果要建立的阵列的元素多达数百个,则须采用以下的数种方式,a=1:5,b=1:2:9%这二种方式更直接a=12345b=13579,a=1:5,b=1:2:9%这二种方式更直接a=12345b=13579,c=ba%可利用先前建立的阵列a及阵列b,组成新阵列,c=1357912345,特殊矩阵,zeros函数是形成元素皆为0的矩阵;ones函数是形成元素皆为1的矩阵;eye则是产生一个单位矩阵,之所以称为eye是取其发音与原来单位矩阵符号I相同,而又避免与定义复数中的虚部所用的符号i雷同,所以改以eye替代。,上述三个函数的使用语法都相似,如zeros(m)可以产生一个mm的正方矩阵,而zeros(m,n)产生的是mn的矩阵。也可以使用这三个函数将一mn矩阵原来元素全部取代成0,1或是单位矩阵的值,不过要加上size指令来指出其矩阵大小是m,n,所以语法为zeros(size(A),其中A是原来矩阵。,A=zero(2)%0的矩阵A=0000,B=zeros(2,3)B=000000,C=12;34;56;size(C)%使用size指令得到C矩阵的大小ans=32,D=zeros(size(C)%加上size指令将矩阵C原来的元素全部以0取代A=ones(2),B=ones(2,3)%1的矩阵,B=111111,A=1111,C=12;34;56;D=ones(size(C);A=eye(2),B=eye(2,3)%单位矩阵A=1001B=100010C=12;34;56;D=eye(size(C);,阵列运算的特色,MATLAB在许多运算皆是以阵列为对象,即是以阵列的元素为对象。因此除了+,-这二个运算外,其余的运算符号(乘、除、次方)皆须加上.来强调阵列之间的运算。以下几个例子可以说明阵列运算的特色。如果a,b各代表二个不同的阵列,a与b之间的运算是元素对元素的方式,例如,x=1.5;%x是纯量y=exp(x2);%exp(x2)是纯量运算y1=x/y%x/y是纯量运算x=1:0.1:2;%x是阵列y=exp(x.2);%exp(x.2)是阵列运算y1=x./y%x./y是阵列运算,x=2.0%x是一纯量nume=x3-2*x2+x-6.3;deno=x2+0.05*x-3.14;f=nume/deno,x=1:5;%注意x是一阵列nume=x.3-2*x.2+x-6.3;deno=x.2+0.05*x-3.14;f=nume./deno,Matlab矩阵运算函数,先介绍几个与矩阵转角有关的函数:rot90,fliplr,flipud,它们的用法及说明请参考以下的例子。,A=210;-25-1;346;B=rot90(A)%将A矩阵逆时针转90度B=0-161542-23,A=12;48;-20;B=fliplr(A);%将A矩阵从左向右翻C=flipud(A);%将A矩阵从上向下翻B,CB=21840-2C=-204812,另外函数reshape则是用来调整矩阵改形,即是在矩阵的元素总数不变下,改变其列及行的大小。见以下范例。A=256-1;3-2100;B=reshape(A,4,2);%将A矩阵改成4x2的矩阵C=reshape(A,1,8);%将A矩阵改成8x1的矩阵,B,CB=263105-1-20C=25613-2100,B,CB=263105-1-20C=25613-2100,我们如果要将矩阵内的特定元素读取出来,或是将特定元素以其它值取代,以下的函数diag,triu,tril提供了这方面的功能。diag是只保留原矩阵的主对角线(maindiagonal)的元素,其余的元素以零取代。triu,tril则是分别产生上三角形及下三角形矩阵,其余的元素也以零取代。以下的例子详细的说明这三个函数的用法:,V=123;A=diag(V)A=100020003,A=1:2:7;3:3:12;4:-1:1;1:4A=13573691243211234B=triu(A)B=13570691200210004,A=1:2:7;3:3:12;4:-1:1;1:4A=13573691243211234C=triu(A,-1)C=13573691203210034,D=triu(A,3)D=0007000000000000,B=tril(A)B=1000360043201234C=tril(A,-1)C=0000300043001230,D=tril(A,3)D=13573691243211234,我们在前面已说明过MATLAB的运算是以阵列(array)及矩阵(matrix)方式在做运算,而这二者在MATLAB的基本运算性质不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。我们就来说明矩阵运算的特点。以下将阵列及矩阵的运算符号及其意义列出,利用这些运算符号即可进行以下的矩阵运算。,A=251;738;4521;16130;A%A的转置矩阵A=274165351318210A=4-13;B=-252;dot_prod=sum(A.*B)%二个阵列做内积dot_prod=-7c=dot(A,B)%以dot函数也可做内积运算c=-7,A=4;-1;3;dot_prod=sum(A.*B);%如果A是行阵列则先做转置,再做内积F=25-1;G=01-3;out_prod=F*G;%二矩阵做外积A=2,5,1;0,3,-1;B=1,0,2;-1,4,-2;5,2,1;C=A*B%矩阵相乘,注意二个矩阵的大小须相容C=222-5-810-7,A=21;43;A2%矩阵次方ans=41169,A=2,5,1;0,3,-1;B=1,0,2;-1,4,-2;5,2,1;C=A*B%矩阵相乘,注意二个矩阵的大小须相容C=222-5-810-7,A=21;43;expm(A)logm(A)sqrtm(A),函数polyvalm是以矩阵方式做多项式函数计算,有别于polyval是以阵列方式计算函数值。它的语法为polyvalm(a,X),其中X为一矩阵而a则是一多项式。以下的例子可说明其用法。X=111;222;333;a=111;%注意a=X*X+X+If=polyvalm(a,X)f=877141514212122,MATLAB的逆矩阵函数和秩函数语法分别为inv(A),rank(A),:例如:,逆矩阵、矩阵秩与行列式,A=21;43;rank(A)2%表示A秩数为2且等于矩阵的列数inv(A)%逆矩阵ans=1.5000-0.5000-2.00001.0000,B=21;32;45;%B为奇异矩阵rank(B)ans=2%表示B秩数为2,但是其列数为3inv(B)?Errorusing=invMatrixmustbesquare.,MATLAB提供计算行列式的函数,其语法为det(A),例如:A=130;-152;121;det(A)%矩阵之行列式值ans=10,本征值与本征向量,假设A为一个矩阵,而X为一个有n列的栏向量,为一纯量。考虑以下的数学式如果X由不为零的元素所组成,其中要满足上式称为矩阵A的本征值(eigenvalue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河沟防溺水护栏施工方案
- 隧道维修施工方案下载
- 电缆支架整修方案范本
- 江海职业技术学院《商场设计》2023-2024学年第二学期期末试卷
- 重庆工程学院《混凝土结构基本原理A》2023-2024学年第一学期期末试卷
- 武汉信息传播职业技术学院《高级细胞生物学》2023-2024学年第二学期期末试卷
- 2025租赁土地合同范本
- 河南降噪墙施工方案
- 文华学院《工业知识概论》2023-2024学年第二学期期末试卷
- 山西医科大学《参展商实务》2023-2024学年第二学期期末试卷
- 湖南省2025届高三“一起考”大联考(模拟二)语文试题及参考答案
- 2024年中国职工保险互助会陕西办事处招聘笔试真题
- 商业地产项目整体经营方案
- 旅行社代订业务合同模板
- 第二单元 人民当家作主(A卷 基础夯实)2024-2025学年高中政治统编版必修三单元测试AB卷(含解析)
- 2025年4月自考13887经济学原理中级押题及答案
- 2025广东广州市花都区恒悦房地产开发有限公司招聘项目用工人员16人笔试参考题库附带答案详解
- 琴行规章制度
- 医疗大数据平台的运营管理策略
- 医院内部控制岗位职责与流程优化
- 2025年中国石油钻采专用设备行业竞争格局及市场发展潜力预测报告
评论
0/150
提交评论