收藏 分销(赏)

matlab讲义(全).docx

上传人:天**** 文档编号:4337938 上传时间:2024-09-07 格式:DOCX 页数:101 大小:282.54KB
下载 相关 举报
matlab讲义(全).docx_第1页
第1页 / 共101页
matlab讲义(全).docx_第2页
第2页 / 共101页
matlab讲义(全).docx_第3页
第3页 / 共101页
matlab讲义(全).docx_第4页
第4页 / 共101页
matlab讲义(全).docx_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、1.1 计算机应用与工程问题自十九世纪以来工业革命至今,持续了二百年的科技进展,使世人的生活水准大为提高。在我们即将迈入二十 一世纪的此时,回顾近年来的重大工程成就,影响世界深远的为数不少,而依据美国国家工程学院在1989年, 所选出的25年的十大重大工程成就计有: 微处理机 登陆月球 人造卫星的应用 电脑辅助设计及制造 大型越洋客机 先进复合材料 电脑断层扫描 基因工程 雷射 光纤 在我们缅怀过去的光辉成就的同时,未来的世纪仍有更坚钜的工程问题有待解决,在此列举几个:气象预测及 全球变迁,电脑语音辩认,人类基因解读计划,交通工具性能提升,原油及天然气探勘等。 在上述提及的工程问题成就或是挑战

2、,同学可以从以下杂志、书籍或是.网址查询进一步的资料: 牛顿月刊 (从过期和当期期刊,可以找到相当丰富的参考资料) 杨玉龄译,基因圣战,毕修普,瓦德霍兹合著,台北市,天下文化出版,1994 (有人类基因解读计划的背景说明)。 全球变迁中心 http:/sun.gcc.ntu.edu.tw/ 网路搜寻引擎 蕃薯藤 http:/taiwan.csie.ntu.edu.tw/b5/yam GAIS http:/gais.cs.ccu.edu.tw/cgais.html Yahoo http:/.yahoo./ Alta Vista http:/.altavista.digital. Scientif

3、ic American http:/.thesphere./sas/SciAm/SciAm.html New Scientist Planet http:/.newscientist. 由于我们所面对的工程问题越来越复杂,过去所依赖分析的技术已逐渐不敷使用。利用电脑来分析及解决工程 问题,已是当今工程师的必要工具。如何善用电脑应用软体来帮助分析工程问题,将是各位同学往后所要学习 的重点,也是这门课的目的。如此,再你踏出校园就业时,才能练就一身好本事,以应付市场之需。 在此门课我们会利用的电脑工具有: 网际网路 (Internet) 电子邮件 (Email) 电子公布栏 (Electronic

4、Bulletin Boards) 全球资讯网 (World Wide Web, .) 有关上述各项工具的说明,大家可以参考由萧松瀛所翻译的中文.-FAQ ( 和中文Internet -FAQ ( 以下列出几个与此门课有关的网站 MATLAB的网站(MathWorks公司) http:/.mathworks./ Prentice-Hall 图书公司 http:/.prenhall. 吴俊网站 http:/.ncu.edu.tw/junwu1.2 工程问题的解决方式解题五部曲 1. 简要的叙述问题 2. 描述输入/输出的资讯 3. 利用简易数据将问题以手或计算器先行演算 4. 撰写MATLAB程式

5、 5. 以多组数据测试MATLAB解 问题解析范例详见课本说明 (p. 21-24)1.3 认识你/你的电脑工作环境应用软体的简介机械系馆E2-308 PC教室有 30 台486/586电脑,上面安装有中文Win3.1少数几台有是安装Win95,MATLAB 4.0及在Win3.1上网路的软体 NetTerm, Netscape。Win3.1 不多作说明。电脑开机后按Esc后由Dos环境键入wins即可进入 Win3.1。MATLAB 4.0 我们这门课的主角。由Win3.1选择MATLAB for Windows的图示(Icon),即可进入MATLAB,会看 到二个图示:MATLAB wit

6、h SIMULINK, MATLAB Help。其中的MATLAB with SIMULINK就是MATLAB再加上 另一个作动态模拟的SIMULINK的组合,由于我们只须用到MATLAB的部份,SIMULINK部份就不做介绍。 MATLAB Help则是MATLAB的线上使用说明,内有详细的MATLAB的各项功能解说及函数使用简介。 NetTerm 网路上连到各个电脑主机的应用软体,可以把PC模拟成终端机。由Win3.1选择 网路 的图示,会看到 几个图示:Tcpman, NetTerm, Netscape等。这些软体都是上网路的工具。在执行NetTerm前须先按Tcpman来启动 在Win

7、dows的网路协定,之后再按NetTerm,即可开启NetTerm的视窗。至于它的功能如何使用,我们会做实际 示范。 Netscape 全球资讯网 (.) 的浏览器 (browser)。执行Netscape前的准备工作与上述的NetTerm相同。至于它的功能如何使用,我们也会做实际示范。第二章 工程问题挑战:涡轮螺旋桨引擎在这章开始介绍MATLAB的使用环境,阵列与矩阵的运算差别、简易绘图功能、和撰写MATLAB程式,储存及 读取数据等的基本功能。 第二章 工程问题挑战:涡轮螺旋桨引擎 o 2.1 什么是MATLAB o 2.2 基本功能 o 2.3 线上说明 o 2.4 阵列与矩阵 o 2.

8、5 简易绘图 o 2.6 输入及输入 o 2.7 如何撰写 MATLAB 程式 o 2.8 储存及读取数据 o 2.9 其它绘图功能 o 2.10 问题范例:涡轮螺旋桨引擎 2.1 什么是MATLABMATLAB (MATrix LABoratory)具有用法简易、可灵活运用、程式结构强又兼具延展性。 以下为其几个特色: 功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问 题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。 先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执

9、行视觉数据分,并制作高品质的图形,完成科学性或工程 性图文并茂的文章。 高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(.pile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建 功能。 开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。 丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提 供

10、了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行 )、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控 制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。 MATLAB有几种在不同电脑作业系统的版本,例如在视窗3.1上的MATLAB for Windows, SIMULINK,在麦金塔 上的MATLAB for Macintch,另外还有在Unix上的各种工作站版本。基本上这些版本主要是提供方便的操作环境 ,采用图形介面。以下针对前述的几种在PC上的MATLAB 版本做简要说明: MATLAB fo

11、r Windows,此版本须要在PC电脑的中英文视窗3.1下执行。与旧的DOS版本不同的是对图形显示有大幅改 善,使得软体更合适做信号处理及影像处理的分析。此外一些重要的设定指令也改为由视窗中选择。目 前308是安装的是4.0版,不过较新的版本为4.2,而最新版的5.0也刚刚上市。4.0和4.2的差异不是很大, 而5.0未用过所以其功能如合并不清楚。有兴趣了解者请到MathWorks网站一探究竟。 SIMULINK,此软体必须在中英文视窗3.1下执行,是给控制领域的使用者做分析线性/非线性、离散系统 。此外也提供很方便的示波器输出,做为讯号的监控。 Student Edition of MAT

12、LAB,除了上述各类的MATLAB专业版本,在1995年Mathworks公司又推出学生专 用的Student Edtion of MATLAB,这个版本为4.2,而它的功能与专业版几乎相同,但是多了一些限制。其限制简述如下: (1)每个向量能能使用的元素个数上限为8192 (2)每个矩阵的元素总数上限也为8192,此外不论行或列向量的个数上限为32 (3)程式不能和C或是Fortran的副程式作动态连结。但是它附了二个工具箱:符号运算和讯号处理,在这门 课的后半部份我们将有机会学习如何使用这二个工具箱。 我们在308室安装的是MATLAB 4.0,另外也加装符号运算和讯号处理二个工具箱,方便

13、上课教学。不过你若 是自己有电脑,可以考虑买学生版的MATLAB,做课后练习。 2.2 基本功能以下介绍MATLAB的入门功能,包括数学算式、定义变数。 2.2 基本功能 o 2.2.1 MATLAB 的视窗环境 o 2.2.2 简易数学 o 2.2.3 变数 o 2.2.4 其它功能 2.2.1 MATLAB 的视窗环境进入MATLAB之后,会看道到一个视窗MATLAB .mand Window称为指令视窗,它是你键入指令的地方也是 MATLAB将计算结果显示在此。而在它的功能选单一共有File,Edit, Options, Windows, Help五个主要功能,每 一个之下各又有下一层的

14、功能,我们会在后面相关的地方说明。2.2.2 简易数学我们先从MATLAB的数学运算开始说明。就像你的计算器一样,数学式的计算是直接了当。如果我们要算 1+2+3及110+220+330这二个式子,以下例子接著提示符号之后的是要键入的算式,MATLAB将计算 的结果以ans显示。如果算式是x=1+2+3,MATLAB将计算的结果以x显示。 1+2+3 ans = 6 1*10 + 2*20 + 3*30 ans = 140 x=1+2+3 x = 6 如果在上述的例子结尾加上;,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可 x=1+2+3; x x = 6以下的例子,显示M

15、ATLAB对使用变数的弹性 apple=5 apples = 5 orange=10 orange = 10 total_cost=apple*2+orange*4 total_cost = 50 average_cost=total_cost/(apple+orange) average_cost = 3.33334MATLAB提供基本的算术运算有: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (),范例为:5+3, 5-3, 5*3, 5/3, 53其它在计算常用的功能我们来看一个算式来说明。要计算面积Area = ,半径r = 2,则可键入 r=2; area=pi*r2;

16、area = 12.5664我们也可以将上述指令打在同一行,以, 或是; 分开,例如 r=2, area=pi*r2 r=2; area=pi*r2;请注意上述二式的差异,前者有计算值显示,而后者则无。如果一个指令过长可以在结尾加上.(代表此行指 令与下一行连续),例如 r=2; area = pi . *r2另外一个符号注解是由%起头,也就是说在%之后的任何文字都被视为程式的注解。注解的功能是简要的说明 程式的内容,过多的注解在程式中或许没有必要,但是我们写程式时往往用了太少的注解。任何可能产生混淆 的地方都应该省用注解,将适量的注解可在往后想了解程式时能节省一些不必要的时间与有看没有懂的痛

17、 苦。例如 r=2; % 键入半径 area=pi*r2; % 计算面积 MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Options下 选 Numerical Format,或者直接在指令视窗键入以下的各个数字显示格式的指令,以值为例 指令数字值说明 format short3.1416预设的 4 位有效小数位数 format long3.1415926535897915 位有效小数位数 format short e3.1416e+0004 位有效小数位数加上指数表格式 2.2.3 变数MATLAB对使用变数名称的规定: 1. 变数名称的英文大小写

18、是有区别的(apple, Apple, AppLe,三个变数不同)。 2. 变数的长度上限为 19 个字元。 3. 变数名的第一个字必须是一英文字,随后可以掺杂英文字、数字或是底线。 以下列出MATLAB所定义的特别变数及其意义 变数名意义help线上说明, 如 help quit who列出所有定义过的变数名称 ans预设的计算结果的变数名 epsMATLAB定义的正的极小值=2.2204e-16 pi内建的值 inf值,无限大 () NaN无法定义一个数目 () 2.2.4 其它功能MATLAB利用了二个游标键可以将所下过的指令叫回来重覆使用。按下则前一次指令重新出现,之后再 按Enter

19、键,即再执行前一次的指令。而键的功用则是往后执行指令。 其它在键盘上的几个键如, Delete, Insert,其功能则显而易见,试用即知无须多加说明。 当要暂时执行作业系统(例如Dos)的指令而还要执行MATLAB,可以利用!加上原作业系统的指令,例如 !dir, !format a:。键入who可以查看所有定义过的变数名称。而键入clear则是去除所有定义过的变数名称;如果只是要去除x及y 二个变数则可以键入clear x y。Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。 2.3 线上说明在MATLAB系统中相关的线上(on-line)求助方式有三:

20、1. 是利用help指令,如果你已知要找的题材 (topic) 为何的话,直接键入help 。所以即使身旁没有使用手册,也可以使用help指令查询不熟悉的指令或是题材之用法,例如help sqrt, help topic。 2. 是利用lookfor指令,它可以从你键入的关键字(key-word)(即始这个关键字并不是MATLAB的指令)列出 所有相关的题材,例如lookfor cosine, lookfor sine。 3. 是利用指令视窗的功能选单中的Help,从中选取Table of Contents(目录)或是Index(索引)。 例如 help sqrt SQRT Square ro

21、ot. SQRT(X) is the square root of the elements of X. .plex results are produced if X is not positive. help monkey monkey not found.* lookfor tangent ACOT Inverse cotangent. ACOTH Inverse hyperbolic cotangent. ATAN Inverse tangent. ATANH Inverse hyperbolic tangent. ATAN2 Four quadrant inverse tangent

22、. COT Cotangent. COTH Hyperbolic cotangent. TAN Tangent. TANH Hyperbolic tangent. help atan ATAN Inverse tangent. ATAN(X) is the arctangent of the elements of X. See also ATAN2.2.4 阵列与矩阵在MATLAB的运算式是依据阵列与矩阵算。阵列即是一般通称的向量,它代表一串数据将其写成向量格式。而 矩阵是依据线性代数做运算,其用途要留待第四章再说明。 2.4 阵列与矩阵 o 2.4.1 简易阵列 o 2.4.2 建立阵列

23、o 2.4.3 阵列运算 o 2.4.4 特殊矩阵 o 2.4.5 阵列运算的特色 2.4.1 简易阵列MATLAB的运算事实上是以阵列 (array) 及矩阵 (matrix) 方式在做运算,而这二者在MATLAB的基本运算性质不 同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。在此只说明如何定义矩阵,至于矩阵的 详细运算语法,我们将留待第四章再说明。 而宣告一变数为阵列或是矩阵时,如果是要个别键入元素,须用中括号 将元素置于其中。阵列为一维元素 所构成,而矩阵为多维元素所组成,例如 x = 1 2 3 % 一维 1x3 阵列 x = 1 2 3; 4 5 6 % 二维 2x3

24、 矩阵,以;区隔各列的元素 x = 1 2 3 % 二维 2x3 矩阵,各列的元素分二行键入 4 5 6假设要计算 y = sin (x), 0x而x = 0, 0.2, 0.4,.,,即可用阵列方式运算,例如 x = 0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi % 注意阵列内也可作运算 x = 0 0.6283 1.2566 1.8850 2.5133 3.1416 y=sin(x) y = 0 0.5878 0.9511 0.9511 0.5878 0.0000要找出阵列的某个元素或数个元素,可参考以下的例子 x(3) % 第三个x的元素 ans = 1.2566 y

25、(5) % 第五个y的元素 ans = 0.5878 x(1:5) % 列出第一到第五个x的元素 ans = 0 0.6283 1.2566 1.8850 2.5133 y(3:-1:1) % 列出第三到第一个y的元素,3为起始值,1为终止值,-1为增量 ans = 0.9511 0.5878 0 x(2:2:6) % 列出第二到第六个x的元素,2为起始值,6为终止值,2为增量 ans = 0.6283 1.8850 3.1416 y(4 2 5 1) % 列出y元素,排列元素依序为原来y阵列的4,2,5,1个 ans = 0.9511 0.5878 0.5878 02.4.2 建立阵列前一节

26、提到阵列产生的方式须个别键入其元素,这方法只适用于阵列元素很少时。如果要建立的阵列的元素多 达数百个,则须采用以下的数种方式 x=(0:0.0.2:1) % 以:区隔起始值=0、增量值=0.0.2、终止值=1 x=linspace(0,1,51) % 利用linspace,以区隔起始值=0终止值=1之间的元素数目=51 x=(0:0.01:1)*pi % 注意阵列外也可作运算 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

27、5 d=b(1:2:5) 1 0 1 % 由阵列 b 的三个元素再加上三个元素组成 d = 1 5 9 1 0 12.4.3 阵列运算以下将阵列的运算符号及其意义列出,除了加减符号外其余的阵列运算符号均须多加 . 符号。 阵列运算功能 功能 + 加 - 减 .* 乘 ./ 左除 . 次方 . 转置 a=1:5; a-2 % 从阵列a减2 ans = -1 0 1 2 3 2*a-1 % 以2乘阵列a再减1 ans = 1 3 5 7 9 b=1:2:9; a+b % 阵列a加阵列b ans = 2 5 8 11 14 a.*b % 阵列a及b中的元素与元素相乘 ans = 1 6 15 28

28、45 a./b % 阵列a及b中的元素与元素相除 ans = 1.0000 0.66667 0.6000 0.5714 0.5556 a.2 % 阵列中的各个元素作二次方 ans = 1 4 9 16 25 2.a % 以2为底,以阵列中的各个元素为次方 ans = 2 4 8 16 32 b.a % 以阵列b中的各个元素为底,以阵列a中的各个元素为次方 ans = 1 9 125 2401 59049 b=a % 阵列b是阵列a的转置结果 b = 1 2 3 4 52.4.4 特殊矩阵虽然矩阵的运算要等到第五章才详细说明,但是一些特别矩阵的定义,如元素皆为0, 1或是单位矩阵,因为在 运算时

29、常会用到,所以在此先介绍。 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 的矩阵

30、A = 0 0 0 0 B=zeros(2,3) B = 0 0 0 0 0 0 C=1 2; 3 4; 5 6; size(C) % 使用 size 指令得到C矩阵的大小 ans = 3 2 D=zeros(size(C) % 加上size指令将矩阵C 原来的元素全部以 0 取代 A=ones(2), B=ones(2,3) % 1 的矩阵 A = 1 1 1 1 B = 1 1 1 1 1 1 C=1 2; 3 4; 5 6; D=ones(size(C); A=eye(2), B=eye(2,3) % 单位矩阵 A = 1 0 0 1 B = 1 0 0 0 1 0 C=1 2; 3 4

31、; 5 6; D=eye(size(C);2.4.5 阵列运算的特色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

32、= 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./deno2.5 简易绘图MATLAB 的绘图功能很强,我们先从最简单的二维绘图指令plot介绍起。plot是用来划函数x对函数y的二维图,例如要划 出 y = sin

33、 (x), 0x2。plot可以在一个图上划数条曲线,且以不同的符号及颜色来标示曲线,其指令见线上 说明help plot。如要在x及y轴及全图加注说明,则可利用指令xlabel, ylabel, title,其指令见线上说明help xlabel, help ylabel, help title。三维图的指令为plot3,其指令见线上说明help plot3。此外二维图及三维图皆可使用指令grid 加上格线。MATLAB会将绘图结果展示在另一个视窗称为MATLAB Figure Windows,如果你看不到此视窗, 别担心它只是被盖住,可以进入Windows再选择Figure。接著我们就来看

34、以下的例子 v1=linspace(0,2*pi,20); v2=sin(v1); % 建立 v1 及 v2 阵列 plot(v1,v2) % 利用 plot,输入的变数为 x 轴接著的变数为 y 轴 v3=cos(v1); % 建立 v3 阵列 plot(v1,v2,v1,v3) % 划二条曲线,一条代表 v1-v2 函数关系 %一条代表 v1-v3 函数关系 plot(v1,v2,v1,v2,+) % 一样划二条曲线,不过第二条曲线以符号 + 标示 plot(v1,v2,v1,v2.*v3,-) % 划二条曲线,一条代表 v1-v2 函数关系,一条 % 代表 v1-(v2.*v3) 函数关

35、系且以符号标示 xlabel(x-axis) % 加上 x 轴的说明,在二个单引号 之间键入文字的说明 ylabel(y-axis) % 加上 y 轴的说明 title(2D plot) % 加上图的说明 plot3(v2,v3,v1), grid % 将 v2-v1-v3 函数关系分别以x轴y轴及z轴划,并加上格线2.6 输入及输入在运算式中常需要做数据的输入及输入,采用的方式可以是交谈式的或是指定格式。 2.6 输入及输入 o 2.6.1 交谈式的输入 o 2.6.2 输出格式 2.6.1 交谈式的输入我们来看一个已经讲过的算式:要计算面积 Area=,可利用指令input在萤幕印出提示文

36、字做为交谈式的输入。 r = input(Type radius:) % 在两个单引号 之间键入提示文字 Type radius: % 现在键入 2 做为半径值 r = 2 area=pi*r2; % 键入面积算式 name = input(Your name please: ,s) % 要键入文字则须在加上s,s 是代表字串(string) Your name please: % 键入名字 J.C. Wu name = J.C. Wu2.6.2 输出格式至于输出有二种格式:自由格式 (disp) 和格式化输出 (fprintf)。要直接输出文字或是一数值,可使用disp,例如 temp=20

37、; disp(temp); disp(degrees C); disp(度 C) %中文也接受呢! 20 degrees C 度 C而指令fprintf则是用来控制输出数据及文字的格式,它的基本格式如 fprintf(The area is %8.5fn, area) 在二个单引号间包括输出的字串The area is,接著是输出数据的格式%8.5f,再来是跳行符号以避免下一个输出 数据或是提示符号也挤在同一行,最后键入要输出的数据名area。例如 fprintf(The area is %8.5fn, area) % 注意输出格式前须有%符号,跳行符号须有符号 The area is 12.

38、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: %12.5en,12345.2) % 输出值为指数格式的12位数,含5位小数 e_form: 1.23452e+004 fprintf(f_form: %12.0fn,12345.2)

39、% 输出值为整数格式的12位数 f_form: 123452.7 如何撰写 MATLAB 程式我们前面各节所介绍在MATLAB所做的运算,是适合于所要计算的算式不太长或是想以交谈式方式做运算,如 果要计算的算式很长有数十行或是须要一再执行的算式,则那样的方式就行不通了。MATLAB提供了所谓的 M-file 的方式,可让使用者自行将指令及算式写成巨集程式然后储存成个特别的档案,其附加档是m,譬如 test.m,其中的test就是档案名称。至于要撰写程式可以用任何一种编辑软体(如 Win3.1的记事本或是Dos下的 PE2)或是文书处理软体(如 Word, AmiPro),但是储存格式必须是 A

40、scii 的格式。在指令视窗中的功能选单 可以选择File 再选择New,即进入指定的编辑软体或是文书处理软体。当程式写完后要存档时,必须以.m 档名称储存。要执行 M-file 可以在指令视窗下直接键入该档名如test;或是选择功能表上的Run M-file来找到 M-file 的所在目录再执行M-file。Open M-file, Run M-file。如果要修改 M-file 可以选择功能表上的Open M-file ,即可搜寻要修改的 M-file,修改后再存档。以下的tutex1.m档是一个简易绘图程式做为示范使用M-file % M-file, tutex1.m % Simple

41、plot for illustration of using M-file. % 简易绘图以做为示范使用M-file x=linspace(0,2*pi,20); y=sin(x); plot(x,y,r+) xlabel(x-value) ylabel(y-value) title(2D plot) 写好上述程式后即可在指令视窗下键入tutex1,即可执行已建立的tutex1.m 程式。再来看另一个 M-file: tutex2.m 的例子 % M-file, tutex2.m % 计算一个球的体积 r = input(Type radius:); area=pi*r2; volume=(4

42、/3)*pi*r3; fprintf(The radius is %12.5fn,r) fprintf(The area of a circle is %12.5fn,area) fprintf(The volume of a sphere is %12.5fn,volume) 2.7 如何撰写 MATLAB 程式 o 2.7.1 如何在自己的目录执行程式 2.7.1 如何在自己的目录执行程式当在执行M-file时,我们最好是将自己的M-file储存在自己的工作目录下,而不要放在MATLAB内建的目录下, 这样做的好处是不会干扰到 MATLAB 程式的目录下的各个档案。要在自己的工作目录执行程

43、式可分为二个步 骤:(1)建立搜寻路径,(2) 切换目录。(1) 建立搜寻路径 MATLAB 将许多内建函数分门别类放在不同的次目录下,因此它在工作时须依序的搜寻这些次目录,这个过 程称为搜寻路径。MATLAB的指令path可以让我们将自己的工作目录加在原来 MATLAB 的搜寻路径之前 或之后,如此 path(path,c:wufilemy_work) % 将自己的目录 wufilemy_work 加在 % MATLAB的搜寻路径之后 path(c:wufilemy_work,path) % 将自己的目录 wufilemy_work 加在 % MATLAB的搜寻路径之前如果你不想每次进入MA

44、TLAB都要键入path指令,下面的方式可以将path指令设为自动启用。你可以定义一个 特别的M-file称为startup.m内容如下,将它存在 MATLAB 的主目录下,这样每次MATLAB启动时就会自动的执 行这个startup.m档,即与上述的自行设定path的作用是相同的。 (2) 切换目录 设好搜寻路径后,接著即可用cd指令将目录切换到自己的工作目录之下来安安心心的使用MATLAB。以下的 范例说明如何使用与切换目录相关的指令: cd wufilemy_work % 切换至目录wufilemy_work cd % 如果只用 cd 则会显示目前的目录 c:WUFILEMY_WORK dir % 列出目录下的档案 . tutex1.m tutex2.m . test.txt delete test.txt % 删除 test.txt 2.8 储存及读取数据 我们在使用MATLAB过程中,免不了希望将运算过程中的某些数据储存起来,以便下次使用再读取利 用。储

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服