MATLAB简介2MATLAB输入及输出格式与矩阵运算函数

上传人:宝路 文档编号:48323131 上传时间:2018-07-13 格式:PPT 页数:62 大小:219.59KB
返回 下载 相关 举报
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数_第1页
第1页 / 共62页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数_第2页
第2页 / 共62页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数_第3页
第3页 / 共62页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数_第4页
第4页 / 共62页
MATLAB简介2MATLAB输入及输出格式与矩阵运算函数_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《MATLAB简介2MATLAB输入及输出格式与矩阵运算函数》由会员分享,可在线阅读,更多相关《MATLAB简介2MATLAB输入及输出格式与矩阵运算函数(62页珍藏版)》请在金锄头文库上搜索。

1、Matlab输入输出格式及矩阵运算在运算式中常需要做数据的输入及输出,采用的方式可以是交谈式的或是指定格式。 输入及输出 交谈式的输入 输出格式 Matlab输入及输出格式我们来看一个例子,计算面积 Area= 可利用指令input在萤幕印出提示文字做为交谈式的输入。 r = input(Type radius:) % 在两个单引号 之间键入提示文字 Type radius: % 现在键入 2 做为半径值 r = 2 area=pi*r2; % 键入面积算式交谈式的输入 name = input(Your name please: ,s) % 要键入文字则须在加上s,s 是代表字串(strin

2、g) Your name please: % 键入名字 J.C. Wu name = J.C. Wu输出格式 至于输出有二种格式:自由格式 (disp) 和格式化输出 (fprintf)。要直接输出文字或是一数值,可使用disp,例如 temp=20; disp(temp); disp(degrees C); disp(度 C) %中文也接受呢! 20 degrees C 度 C而指令fprintf则是用来控制输出数据及文字的格式,它的基本格式如 fprintf(The area is %8.5fn, area) 在二个单引号间包括输出的字串The area is, 接著是输出数据的格式%8.

3、5f,再来是跳行符号以避免下一个输出 数据或是提示符号也挤在同 一行,最后键入要输出的数据名area。 The area is 12.56637 % 输出值为8位数含5位小数 注意输出格式前须有%符号,跳行符号须有符号 在此要稍加说明的是输出数据的格式,以下的 例子各说明了不同型态的输出格式 fprintf(f_form: %12.5fn,12345.2) % 输出 值为12位数,含5位小数 f_form: 12345.20000 fprintf(f_form: %12.3fn,1.23452) % 输出 值为12位数,含3位小数 f_form: 1.235 fprintf(e_form: %

4、12.5en,12345.2) % 输出值为指数格式的12位数,含5位小数 e_form: 1.23452e+004 fprintf(f_form: %12.0fn,12345.2) % 输出值为整数格式的12位数 f_form: 12345MATLAB常用的三角函数 sin(x):正弦函数 asin(x):反正弦函数 cos(x):余弦函数 acos(x):反余弦函数 tan(x):正切函数 atan(x):反正切函数 sinh(x):超越正弦函数 asinh(x):反超越正弦 cosh(x):超越余弦函数 acosh(x):反超越馀弦函数 tanh(x):超越正切函数 函数 atanh(x

5、):反超越正切函数 变数也可用来存放向量或矩阵,并进行各种运 算,如下例的列向量(Row vector)运算: x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 变数命名的规则 1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有19个字母,MATLAB会忽略多余字母 Matlab矩阵运算x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 我们可以随意更改、增加或删除向量的元素: y(3) = 2 % 更改第三个元素 y =3 7 2 5 y(6) = 10 % 加入第六个元素 y = 3 7 2 5 0 10 y(4) = % 删除第四

6、个元素, y = 3 7 2 0 10 MATLAB会忽略所有在百分比符号(%)之后的文字, 因为百分比之后的文字为程式的注解(Comments)。MATLAB亦可取出向量的一个元素或一部份来做运算: x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算 ans = 9 y(2:4)-1 % 取出y的第二至第四个元素来做运算 ans = 6 1 -1 在上例中,2:4代表一个由2、3、4组成的向量若对MATLAB函数用法有疑问,可随时使用help来寻 求在线帮助(on-line help): MATLAB的查询命令 help:用来查询已知命令的用法。例如已知inv是用来 计算

7、逆矩阵,键入help inv即可得知有关inv命令的用法 。(键入help help则显示help的用法,请试看看!)lookfor:用来寻找未知的命令。例如要寻找计算逆矩 阵的命令,可键入 lookfor inverse,MATLAB即会列 出所有和关键字inverse相关的指令。找到所需的命令 后 ,即可用help进一步找出其用法。(lookfor事实上 是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对。) A-3 MATLAB基本功能我们下面给出一些MATLAB的常用的功能,这只是MATLAB及其众多TOOLBOX中的极少极少部分。用户可以参阅有关MATLAB的手册,或直接在MA

8、TLAB系统中用HELP命令查阅其它功能。MATLAB的主要线性代数运算 如表A1所示为常用的矩阵和线性代数运算函数,用户可以用help matfun获得更多内容表A1常用线性代数函数上面所列的都是有关矩阵的操作函数。如 eig(A)可求出A的特征根及其特征向量,具体执 行方法为: 输入A矩阵 A=0 1;-6 -5 A =0 1 -6 -5 E=eig(A) %求出方阵A的特征根E E = -2 -3%求出方阵A的特征向量V及其A的对角型DV,D=eig(A) V =0.4472 -0.3162-0.8944 0.9487D =-2 00 -3考虑一个考虑一个“ “数学问题数学问题” ”,

9、, 该问题用半数学语言描述就是:该问题用半数学语言描述就是: 如何生成一个如何生成一个 3x3 3x3 矩阵矩阵, , 并将自然数并将自然数 1, 2, ., 9 1, 2, ., 9 分别置分别置 成这成这 9 9 个矩阵元素,才能使得每一行、每一列、且主个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。、反对角线上元素相加都等于一个相同的数。这样的矩阵称为这样的矩阵称为“ “魔方矩阵魔方矩阵” ”。用。用 MATLAB MATLAB 的的 magic() magic() 函数,我们可以由下面的命令立即生成这样的函数,我们可以由下面的命令立即生成这样的矩阵:矩阵

10、: A=magic(3) A=magic(3)A = A =8 1 6 8 1 63 5 7 3 5 74 9 2 4 9 2 还可以由还可以由 B=magic(10) B=magic(10) 一次生成一次生成 10x10 10x10 的魔方的魔方矩阵。如果想求出矩阵的行列式和特征值,可矩阵。如果想求出矩阵的行列式和特征值,可 以分别由以分别由 det(Bdet(B) ) 与与 eig(Beig(B) ) 立即得出结果,而同立即得出结果,而同样的工作在样的工作在 C C 下并不是很简单就可以得出的,下并不是很简单就可以得出的,算法选择不好,还可能得出错误的结果。算法选择不好,还可能得出错误的结

11、果。 Consider the system of linear equations given byThe solution to the system is given byIn Matlab there are two ways of solving this problem. Calculate the inverse of A (A-1) , then find x byleft-multiplication of b with A-1 .Left-division of b with AIn the first case the function inv(A) is used to

12、 find the inverse. This is then multiplied by b. The Matlab code for this operation isIn the second case left- division is performed straight away with the commandX=X= 9.25009.2500 4.25004.25002.7500 2.7500A = rand(1000,1000); % Creates a randomA = rand(1000,1000); % Creates a random % matrix A% mat

13、rix A b = rand(1000,1); % Creates a randomb = rand(1000,1); % Creates a random % vector b% vector b det(Adet(A) % Calculates the determinant of A) % Calculates the determinant of A tic, % Starts the time-watchtic, % Starts the time-watch x = inv(A)*b; % Solves the systemx = inv(A)*b; % Solves the sy

14、stem toctoc % Stops the watch % Stops the watch tic, y = Ab; tic, y = Ab; toctoc % Solves and times the system % Solves and times the system % with left division% with left division前一节提到阵列产生的方式须个别键入其元素前一节提到阵列产生的方式须个别键入其元素 ,这方法只适用于阵列元素很少时。如果要建,这方法只适用于阵列元素很少时。如果要建 立的阵列的元素多立的阵列的元素多 达数百个,则须采用以下达数百个,则须采用

15、以下 的数种方式的数种方式 a=1:5, b=1:2:9 % 这二种方式更直接 a = 1 2 3 4 5 b = 1 3 5 7 9 a=1:5, b=1:2:9 % 这二种方式更直接 a = 1 2 3 4 5 b = 1 3 5 7 9 c=b a % 可利用先前建立的阵列 a 及阵列 b ,组成新阵列 c = 1 3 5 7 9 1 2 3 4 5 特殊矩阵 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 = 0 0 0 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号