MATLAB简介2MATLAB输入及输出格式与矩阵运算函数.ppt_第1页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数.ppt_第2页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数.ppt_第3页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数.ppt_第4页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab输入输出格式及矩阵运算 在运算式中常需要做数据的输入及输出 采用的方式可以是交谈式的或是指定格式 输入及输出交谈式的输入输出格式 Matlab输入及输出格式 我们来看一个例子 计算面积Area 可利用指令input在萤幕印出提示文字做为交谈式的输入 r input Typeradius 在两个单引号 之间键入提示文字Typeradius 现在键入2做为半径值r 2 area pi r 2 键入面积算式 交谈式的输入 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 5f n area 在二个单引号间包括输出的字串Theareais 接著是输出数据的格式 8 5f 再来是跳行符号以避免下一个输出数据或是提示符号也挤在同一行 最后键入要输出的数据名area Theareais12 56637 输出值为8位数含5位小数注意输出格式前须有 符号 跳行符号须有 符号 在此要稍加说明的是输出数据的格式 以下的例子各说明了不同型态的输出格式 fprintf f form 12 5f n 12345 2 输出值为12位数 含5位小数f form 12345 20000 fprintf f form 12 3f n 1 23452 输出值为12位数 含3位小数f form 1 235 fprintf e form 12 5e n 12345 2 输出值为指数格式的12位数 含5位小数e form 1 23452e 004 fprintf f form 12 0f n 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的主要线性代数运算如表A 1所示为常用的矩阵和线性代数运算函数 用户可以用helpmatfun获得更多内容 表A 1常用线性代数函数 上面所列的都是有关矩阵的操作函数 如eig A 可求出A的特征根及其特征向量 具体执行方法为 输入A矩阵 A 01 6 5 A 01 6 5E eig A 求出方阵A的特征根EE 2 3 求出方阵A的特征向量V及其A的对角型D V 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 A b 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 可以产生一个m m的正方矩阵 而zeros m n 产生的是m n的矩阵 也可以使用这三个函数将一m n矩阵原来元素全部取代成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 100010 C 12 34 56 D eye size C 阵列运算的特色 MATLAB在许多运算皆是以阵列为对象 即是以阵列的元素为对象 因此除了 这二个运算外 其余的运算符号 乘 除 次方 皆须加上 来强调阵列之间的运算 以下几个例子可以说明阵列运算的特色 如果a b各代表二个不同的阵列 a与b之间的运算是元素对元素的方式 例如 x 1 5 x是纯量 y exp x 2 exp x 2 是纯量运算 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 x 3 2 x 2 x 6 3 deno x 2 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 4 A 13573691243211234 B triu A B 13570691200210004 A 1 2 7 3 3 12 4 1 1 1 4 A 13573691243211234 C triu A 1 C 13573691203210034 D triu A 3 D 0007000000000000 B tril A B 1000360043201234 C tril A 1 C 0000300043001230 D tril A 3 D 13573691243211234 我们在前面已说明过MATLAB的运算是以阵列 array 及矩阵 matrix 方式在做运算 而这二者在MATLAB的基本运算性质不同 阵列强调元素对元素的运算 而矩阵则采用线性代数的运算方式 我们就来说明矩阵运算的特点 以下将阵列及矩阵的运算符号及其意义列出 利用这些运算符号即可进行以下的矩阵运算 A 251 738 4521 16130 A A的转置矩阵A 274165351318210 A 4 13 B 252 dot prod sum A B 二个阵列做内积dot prod 7 c 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 A 2 矩阵次方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 I f 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 但是其列数为3 inv B Errorusing invMatrixmustbesquare MATLAB提供计算行列式的函数 其语法为det A 例如 A 130 152 121 det A 矩阵之行列式值ans 10 本征值与本征向量 假设A为一个矩阵 而X为一个有n列的栏向量 为一纯量 考虑以下的数学式如果X由不为零的元素所组成 其中要满足上式称为矩阵A的本征值 eige

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论