MATLAB教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宿州学院
机械与电子工程学院课程教案
课程编码:SJ085408
总学时/周学时:16 / 16
开课时间:2013年 5 月 6 日第10 周至第15 周
授课年级、专业、班级:2011级电子信息工程、自动化、电气工程及其自动化使用教材:《MATLAB7讲义》
教研室:自动化
授课教师:温艳、郝保明、胡波
(2)课程进度计划表
(3)教案正文
专业软件实习(2)(MATLAB)
第一章MATLAB简介
一、MATLAB的初步知识
MATLAB最初是由Cleve Moler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MA TLAB程序是MathWorks公司用C语言开发的。
MATLAB作为美国MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。
是目前最好的科学计算类软件
二、MATLAB的主要应用领域
(一)数值分析。
(二)数值和符号计算。
(三)工程与科学绘图。
(四)控制系统的设计与方针。
(五)数字图像处理。
(六)数字信号处理。
(七)通讯系统设计与仿真。
(八)财务与金融工程。
三、MATLAB的优点
容易使用,可以由多种操作系统支持,丰富的内部函数,强大的图形和符号功能,可以自动选择算法,与其他软件和语言有良好的对接性。
四、MATLAB的缺点
(一)运行效率较低
由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。
(二)价格比较贵
一般的用户可能支付不起它的高昂费用。
但是,购买MA TLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。
五、MATLAB 7的新功能
提供了MA TLAB、SIMULINK的升级以及其他最新的75个模块的升级,该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模建模、固定点开发和编码等新特征。
六、MATLAB 7的安装过程
用户在购买到正版MATLAB 7后,可以按照相关的说明进行安装,安装过程相对比较简单。
这里不在赘述。
安装MA TLAB 7必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MA TLAB。
七、MATLAB 7用户界面概述
(一)MA TLAB 7的主菜单
(二)MA TLAB 7的工具栏
(三)窗口
包括:
1.命令窗口(Command History):用于输入命令,">>"为命令输入提示符。
2.命令历史窗口(Command History):记录输入的命令。
3.工作间管理窗口(Workspace):显示当前计算机内存中Matlab变量的名称。
4.当前路径窗口(Current Directory):显示当前用户所在的路径。
八、路径搜索
MATLAB 7有一个专门用于寻找“.m”文件的路径搜索器。
“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB 7的子目录,由于MATLAB 7的一切操作都是在它的搜索路径(包括当前路径中进行的,所以如果调用的函数在搜索路径之外,MATLAB 7就会认为此函数并不存在。
(一)MATLAB 7的当前目录
在“命令”窗口中输入cd命令,并按Enter键确认,即显示当前MATLAB7工作所在目录。
>> cd
d:\MATLAB71\work
(二)查看安装路径
>> installpath=matlabroot
installpath =
D:\MATLAB6p5
(三)MATLAB 7的路径搜索设置
选择MATLAB的主窗口中File | Set Path命令,进入到设置路径搜索的对话框,用户可以设置新的路径
九、Matlab帮助系统
(一)help函数
(二)lookfor函数
练习:
1. 简述MA TLABA7的各个窗口的作用。
2. 查看MATLAB 7的当前目录和安装路径
3. 使用help函数查找det函数的用法
4. 使用lookfor函数查找含用关键字norm的相关内容。
第二章MATLAB的基本使用
一、简单的数学运算
(一)最简单的计算器使用法
1.直接输入法
>> 3*30+3*35+4*30+4*32
ans =
443
2.存储变量法
>> grade1=3*30
grade1 =
90
>> grade2=3*35
grade2 =
105
>> total=grade1+grade2total =
195
(二)标点符号的使用
标点符号定义标点符号定义
; 区分行,取消运行显示等. 小数点以及域访问等
, 区分列,函数参数分隔符等…连接语句
: 在数组中应用较多‘字符串的标识符号
() 指定运算优先级等= 赋值符号
[] 矩阵定义的标志等! 调用操作系统运算
{} 用于构成单元数组等% 注释语句的标识
二、数值运算符号
符号功能实例
+ 加法1+2
- 减法1-2
* 乘法1*2
/、\ 除法1/2或是2\1
^ 乘方2^1 例:光明小学一年级有4个班,每班30人,二年级有3个班,每班35人,求该小学一二年级一共有多少人。
》4*30+3*35
三、常用的操作命令
clc: 清除工作窗
clear: 清除内存变量
quit: 退出
save: 保存内存变量到指定文件。
clf: 清除图形窗口
cd: 显示MA TLAB工作所在目录。
Installpath: 显示安装路径。
四、常用函数
三角函数:sin cos tan cot asin acos atan acot
exp :指数函数
log:自然对数
imag:复矩阵虚部
real:复矩阵实部
round:四舍五入
mod:有符号求余
rem:无符号求余
sign :符号函数
sqrt:平方根
abs:模
练习:
1. 练习使用常用指令。
2. 设3,1==v u ,计算下列各题
(1)u v v u -+2))cos(( (2)cos(3
ππ
(3) v u 342
3. 在指令窗中输入下面一段程序,功能是:画出衰减振荡曲线y=(e-t/3)sin3t 及其
他的包络线y0=(e-t/3)。
T 的取值范围是[0,4π]。
t=0:pi/50:4*pi; y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b')观察输出结果
第三章 向量与数组及其基本运算
一、 向量的生成
(一) 向量的生成:在命令窗口中直接输入向量.如:
>>a=[1,2,3,4] a=
1 2 3 4
(二)等差元素向量的生成:如生成一个向量b=[1,3,5,7,9]. >>b=1:2:9 b=
1 3 5 7 9
其中,1为起始值,2为公差,9为终止值.
二、 向量的基本运算
(一) 加(减),向量中每个元素的加(减)例如: >>a=[1,2]; >>b=[3,5]; >>a+b ans=
4 7
(二) 点积(dot)、叉积(cross)和混合积
例1:求b a ϖ
ϖ⋅
>>dot(a,b) ans= 13
叉积,要求变量维数至少三维
例2:]6,5,4[],3,2,1[==b a ,求b a ϖ
ϖ⨯
>>cross(a,b) ans=
-3 6 -3
例3:]2,1,5[=c ,求)(c b a ϖ
ϖϖ⨯⋅
>>c=[5,1,2];
>>dot(a,cross(b,c)) ans= -15
三、数组及其基本运算
(一)数组的生成:可通过自定义或利用matlab 函数生成. 例如:建立数组A=[1,2,3,4,5],可直接在matlab 命令行中定义 >>A=[1,2,3,4,5]
对于一些特殊的矩阵(如随机数据构成的矩阵)可利用相应的函数生成。
例13 随机生成一个1*10数组. >>A=rand(1,10) (二) 数组的运算
数组的运算主要包括数组的排序、数值运算、关系运算和逻辑运算等 1.数组的排序:函数:sort ;默认情况下对按升序排序。
用法: sort(X):对数组X 中的元素按升序排列.dsort():降序 例4 ]2,5,7,3,1[=X ,对X 进行排列
>>x=[1,3,7,5,2] >>sort(x) ans=
1 2 3 5 7 2.数值运算
数组运算符有矩阵运算符前面加一点"."来表示,数值运算包括:加(.+),减(.-)
乘(.*) 除(.\),乘方(.^)。
数组的加法(减法)与矩阵相同,因此运算符(+,-)既可以被矩阵接受也可以被数组接受。
例15 ]4,3,2[],3,2,1[==B A ,求数组A 于B 的乘积.
>>A=[1,2,3]; >>B=[2,3,4]; >>A.*B ans=
2 6 12 3.关系运算
关系运算包括:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(~=)。
比较两个元素大小时,结果为1表示关系式为真;结果为0表示关系式为假。
如,A=[1,2],B=[1,3] >>A==B >>0
4.逻辑运算
逻辑运算有三种:与(&)、或(|)、非(~)。
与(&)、或(|)可以比较两个数组的,非(~)为一元操作符。
逻辑运算针对数组或矩阵中的每一个元素。
如:A=[1,0] ~A 则为[0,1] 练习:
1.已知]4,1,3[],3,2,1[==b a ,c=[9,-1,4]
(1)求a 和b 的点积(2)求b 和c 的点叉积(3)求a 、b 和c 的混合积
2.首先生成一个1⨯10的随机数组A 然后将第5个和第8个元素取出,并对它们进行四则运算。
3.设 ⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=967852341A ,求其特征值和特征向量 4.A 为5阶魔术矩阵,分别对A 进行如下操作:
(1)求A 的逆;(2)求A 的秩;(3)求A 的迹 5.设数组⎥⎦⎤⎢
⎣⎡=654321A ,⎥⎦
⎤
⎢⎣⎡=362214B ,求A 与B 的乘积.
第四章 矩阵的基本运算
一、矩阵的生成
(一)直接法:
例1:如生成一个三阶矩阵:⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=987654321A >>A=[1,2,3;4,5,6;7,8,9] %: ','表示一行中元素的分隔,';'表示分行.
A=
1 2 3 4 5 6 7 8 9
(二)向量法:矩阵可以看成由多个向量的组合。
如果向量内各数据之间成等差数列,则可利用冒号表达式建立一个向量,如例3。
冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。
如生成向量[1,2,3]则可表示为1:1:3 矩阵 A 可表示为: >>A=[1:1:3;4:1:6;7:1:9] 二、矩阵的运算
1.矩阵与矩阵的加(减)法:指矩阵各元素之间的加(减)法.矩阵必须具有相同的阶.加法用"+",减法用"-",数乘用"*".
例2:⎥
⎦
⎤
⎢⎣⎡=⎥⎦⎤⎢
⎣⎡=3142,4321B A ,求B A +,A 3 >>A=[1,2;3,4];
>>B=[2,4;1,3]; >>A+B ans=
3 6
4 7 >>3*A ans=
3 6 9 12
2.矩阵与矩阵的乘法:运算符号"*",如果A 是一个s m ⨯阶矩阵,D 是一个n s ⨯阶矩阵,则B A *为n m ⨯阶矩阵.
例3:⎥
⎦
⎤
⎢⎣⎡=⎥⎦⎤⎢
⎣⎡=654321,4321D A ,求D A * >>A=[1,2;3,4];
>>D=[1,2,3;4,5,6]; >>A*D ans=
9 12 15 19 26 33
3.矩阵与矩阵的除法:一般情况下,A\B :表示A*X=B 的解;而B/A :表示x*A=B 的解. 例4:]33,26,19;15,12,9[],6,5,4;3,2,1[],4,3;2,1[===D B A ,求D X A =*及D B Y =*的解. >>A=[1,2;3,4]; >>B=[1,2,3;4,5,6];
>>D=[9,12,15;19,26,33]; >>X=A\D X=
1.0000
2.0000
3.0000 4,0000 5.0000 6.0000 >>Y=D/B Y=
1.0000
2.0000
3.0000
4.0000
例5:⎥⎦
⎤⎢
⎣⎡=4321A ,求1
-A >> A=[1,2;3,4]; >>inv(A) ans=
-2.0000 1.0000 1.5000 -0.5000
例6:求矩阵A 的特征值和特征向量
用法一:E=eig(A) 生成有矩阵A 的特征值所组成的一个列向量; 用法二:[V,D ]=eig(A) 生成两个矩阵,V:表示以矩阵A 的特征向量作为列向量组成的矩阵,D :表示由矩阵A 的特征值作为主对角线元素构成的对角矩阵.
>>E=eig(A) E=
-0.3723 5.3723
>>[V ,D]=eig(A) V=
-0.8246 -0.4160 0.5658 -0.9094 D=
-0.3723 0
0 5.3723
例7 求矩阵A 的2-范数;计算A 的无穷范数. >>norm(A,2) ans= 5.4650
>>norm(A,inf) ans= 7
5.特殊矩阵的生成
[] 生成空矩阵
Zeros 生成0矩阵 Eye 生成单位矩阵 Ones 生成全1矩阵 Diag 生成对角矩阵
Rand 生成服从0-1分布的随机矩阵 Randn 生成服从正态分布的随机矩阵 Vander
生成范德蒙德矩阵
例8 生成4行5列的零矩阵 >>zeros(3,5) ans=
0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
例9 生成一个取值在5~10之间的3行3列随机矩阵.
分析: rand(3),可生成0~1之间的矩阵,而5~10,之间的差为5,因此5*rand(3)可0~5之间的随机矩阵,需要生成5~10之间的随机矩阵,需要将矩阵5*rand(3)向右平移5个单位,即 5+5*rand(3)
>> 5+5*rand(3) 习题:
1.已知]4,1,3[],3,2,1[==b a ,c=[9,-1,4]
(1)求a 和b 的点积(2)求b 和c 的点叉积(3)求a 、b 和c 的混合积
2.首先生成一个1⨯10的随机数组A 然后将第5个和第8个元素取出,并对它们进行四则运算。
3.设 ⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=967852341A ,求其特征值和特征向量 4.A 为5阶魔术矩阵,分别对A 进行如下操作:
(1)求A 的逆;(2)求A 的秩;(3)求A 的迹
5.设数组⎥⎦⎤⎢⎣⎡=654321A ,⎥⎦
⎤⎢⎣⎡=362214B ,求A 与B 的乘积.
第五章 MATLAB 程序设计
一、 M 文件的组成
二、程序控制
(一)顺序结构 例1: a=1; b=2; c=3; s1=a+b s2=s1+c s3=s2/s1
(二)选择语句:包含三种形式
第1种形式为只有一种选择:结构如下
if 表达式
执行语句
end
第2种形式为只有两种选择:结构如下
if 表达式
执行语句1
else
执行语句2
end
第2种形式为只有3种或3种以上选择:结构如下
if 表达式1
表达式1为真时的执行语句1
elseif表达式2
表达式2为真时的执行语句2
elseif表达式3
表达式3为真时的执行语句3
……
……
else
所有的表达式都为假时执行语句
end
例1:
%该程序用于演示有2种选择时if-else-end语句的使用
function if two(x)
if x>0
fprintf(‘%f is a positive number\n’,x)
else
fprintf(‘%f is not a positive number\n’,x)
end
(三)分支语句
switch 开关语句
Case条件语句
执行语句,……,执行语句
Case{条件语句1,条件语句2,条件语句3,……} 执行语句,……,执行语句
……
Otherwise,
执行语句,……,执行语句
end
function lower1(method)
switch method
case{‘linear’,’bilinear’}
disp(‘method is linear ’) case ’cubic ’
disp(‘method is cubic ’) case ‘nearest ’ disp(‘method is nearest ’) otherwise disp(‘Unknown method.’) end
将上边的程序以lower1.m 为文件名保存,在命令窗口中运行该文件。
>>a=’linear ’; >>lower1(a) Method is linear
(四)for 循环语句 for i=表达式, 执行语句,……,执行语句 end
例2:求1-10的平方 >> for i=1:1:10 x(i)=i^2; end >> x x =
1 4 9 16 25 36 49 64 81 100 for 循环语句可嵌套使用,如求
∑=10
1
!i i
解:打开M 文件编辑窗口,输入程序如下,并将函数命名为forsum 。
在命令窗口中输入forsum ,即可得到如下结果。
(五)while循环语句
while 表达式
执行语句
end
(六)人机交互命令
break:中断命令:一般用在循环控制中。
return:返回调用函数或键盘。
continue:与break不同,系统只是不再执行相关的执行语句,而不会跳出当前循环。
pause:暂停等待。
input:提示用户从键盘输入数据、字符串或表达式。
三、函数
(一)主函数:M文件中的第1个函数为主函数。
如果同一个M文件中有多个函数,则通常对第1个函数进行定义,定义方式如下:
function f()
其中,function :为函数定义。
f为函数名
(二)子函数:子函数的定义与主函数相同。
例3,编制一个函数,要求任意输入两个数值后,用两个子函数分别求出它们的和与它们的绝对值的和,再将这两个和相乘。
练习:
1.简述使用M 文件与在MATLAB “命令”窗口直接输入命令有何异同。
2. for 循环语句可嵌套使用,如求
∑=10
1
!i i
3.用for …end 循环,编程求出1+3+5+…101的值。
4.用while 循环计算习题2 5.建立阶跃函数。
6.求和:s=1+2+…+n<1000 7.求1-10的平方 8. 验证例10
第六章 字符串
一个字符串是由单引号括起来的简单文本,在字符串里的每一个字符是数组中的一个元素,字符串的存储给每一个字符分配8个字节,与其他的数据类型保持一致。
内容包括:字符串的设置、字符串的操作两部分。
一、字符串设定:只需用单引号(')将设定的字符串引注即可.
例1 设定字符串str 为'this is a string ’ >>str=’this is a string ’
另外,字符串内的单引号由两个连续的单引号来表示, 例2 如要表示:It ’s a string >>str=’It ’’s a string ’ str=
It ’s a string
二、字符串操作
包括字符串元素的读取、连接、比较、查找、替换、转换等。
(一)字符串元素的读取:因为字符串是数组,可用数组操作工具进行读取.
例3 读取字符串str 的第6个元素 >>str(6) ans= a
例4 读取字符串str 的第5-13字符 >>str(5:13) ans=
a string
(二)字符串连接等操作
例5连接字符串str1=’This is’和字符串str2=’a sting’
str1=’This is’
str2=’ a string’
strcat(str1, str2)
ans=
This is a string
由于Matlab是采用C语言开发的,因此它的字符串操作与C语言基本相同.
(三)字符串比较
字符串的比较主要由两个函数strcmp,实现。
其中,strcmp:比较两个字符串是否相等,当相等时,返回值为1,否则返回0。
Strncmp:比较两个字符串前n个字符是否相等,当相等时,返回值为1,否则返回0。
例6 >>words1=’situate’;
>>words2=’situp’;
>>N=strcmp(word1,word2)
N=
(四)字符串的查找、替换
Matlab提供finstr、strfind等函数来实现查找和替换功能。
findstr:会根据所给字符串中的字符来查找,返回字符的位置。
如
例7 在s=’How much wood would a woodchuck chuck?’,中查找字符’a’;
>> s=’How much wood would a woodchuck chuck?’
>>a1=findstr(s,’a’)
a1=
21
strfind(text,pattern):只能在text中查找pattern,并返回第一个相同字符的位置。
例8 在‘a’中查找字符串s=’How much wood would a woodchuck chuck?’
>>b1=strfind(’a’ , s)
>>b1=
[]
返回结果为空,表示在’a’中不存在与s相同的字符串。
(五)转换
在matlab中,可利用num2str、int2str、str2num、str2double等函数实现字符串和数值之间的转换。
例8 将数值2转换成字符‘2’
>>a=num2str(2)
a=
2
输出结果中,a 为字符型变量。
练习:
1. 将字符串s1=’this is a string ’, 中的字符’a ’替换成‘A ’。
2. 将数值矩阵⎥⎦
⎤
⎢
⎣⎡=4321B 转换成字符矩阵。
第七章 多项式
包含多项式的表示,多项式的运算两部分。
一、 多项式的表示方法
在Matlab 中多项式可通过向量来表示,对于多项式n n n n a x a x a x a P ++++=--11
10...可
以利用向量],...,[10n a a a P =来表示。
例1:利用Matlab 表示多项式:12532
4
5
+++=x x x P 。
>>P=[3,5,0,1,0,12]
然后利用poly2sym 函数将该向量转换为多项式 >>y=poly2sym(P) y=
3*x^5+5*x^4+x^2+12 二、 多项式的运算
包括多项式求根、多项式的四则运算、多项式求导及积分等 (一) 求根
(1)利用roots 函数求根。
语法:r=roots(p)
例2 求多项式71232
4
-++x x x 的根
>>p=[1,0,3,12,-7] p=
1 0 3 1
2 -7 >>roots(p) ans=
0.7876+2.4351i 0.7876-2.4351i -2.0872 0.5121
(2)利用poly 求多项式的系数 >>p=poly(r) p =
1.0000 0.0000 3.0000 1
2.0000 -7.0000 (二) 多项式的四则运算
1.加法(减法):如果两个多项式的阶相同,可直接进行加减运算,否则,需要将低阶多项式前加0,变为同阶多项式.
例3 两多项式a=[14 3 8 9]与多项式b=[2 4 5]相加. >>a+[0,[d]] ans=
14 5 12 14
2.乘法:使用函数conv 对多相式进行相乘. 例4 将多项式a=[1,2,3,4]与b=[5,6,7,8]相乘 >>a=[1,2,3,4] >>b=[5,6,7,8] >>c=conv(a,b) c=
5 1
6 34 60 61 52 32 3.除法:由decon 函数来完成. (三) 求导与积分
求导函数:polyder ;积分函数:polyint . 例4 对多项式p=[3,1,8,8]分别求导 >>p=[3,1,8,8] >>q=polyder(p) q=
9 2 8 对q 积分
>>p1=polyint(q) >>p1=
3 1 8 0 练习:
1.用直接输入法创建多项式12532
4
5
+++x x x 。
2.求多项式x x x x x x +++++2
3
4
5
6
6228的所有根以及由多项式的根得出系数。
3.当多项式系数为a=[8 2 2 8],b=[6 1 6 1]时,求其加法和减法。
4.a=[1 2 3 4],b=[5 6 7 8],将其表示成多项式的形式,并求多项式的积。
5.设]2,8,6,5[=a ,求a 的积分和导数。
第八章 图形处理
一、二维曲线的绘制
(一)基本图形的绘制
Plot(x,y) %以x为横坐标,y为纵坐标的二维曲线。
例1 使用plot(x,y)命令绘制简单的二维图形,首先以增量0.01创建一个在[0,2]范围内的向量x,然后在该范围内求向量x的正弦值,生成向量y。
MATLAB7.0将把向量x定位在X轴上,把向量y定位在Y轴上。
解:在命令窗口中输入代码如下。
>>x=0:pi/100:2*pi;
>>y=sin(x);
>>plot(x,y)
所得图形如图6-1所示。
例2使用plot函数绘制二维多线图形。
首先以增量0.01创建一个在[0,2]范围内的向量x,然后在该范围内求向量x的正弦值,生成向量y1;然后求该范围内向量x-0.25的正弦值,生成向量y2;再求该范围内向量x-0.5的正弦值,生成向量y3。
MATLAB7.0将把向量x定位在X轴上,把向量y1、y2和y3定位在y轴上。
解:在命令窗口中输入代码如下。
>> x=0:pi/100:2*pi;
>> y1=sin(x);
>> y2=sin(x-0.25);
>> y3=sin(x-0.5);
>>plot(x,y1,x,y2,x,y3)
所得图形如图6-2所示。
例3 使用polar函数在极坐标下绘制函数的图形
解:在命令窗口输入如下程序,并按Enter键确认输入,运行结果如图6-3所示。
>> %该程序介绍polar函数的用法
>> %t其中t为角度,s为半径
>> t=0:0.01:4*pi;
>> s=abs(sin(2*t).*cos(2*t));
>> polar(t,s,'-r+');
图6-1 正弦曲线
图6-2 正弦曲线
图6-3 polar函数的使用
此外,可利用title()对图形加题标;利用xlabel (),xlabel ()给图形加坐标轴标注,text()函数进行文本标注,legend()进行图形的图例标注。
图6-4 图形标注
>> polar(t,s,'-r+');
>> polar(t,s,'-r+')
>> x=linspace(1,100,100);
>> y=log(x);
>> plot(x,y)
>> title('自然对数图');
>> xlabel('x取值范围是1-100');
>> ylabel('y=log(x)');
练习:
1. plot指令的使用
在commmand窗口键入以下指令:
X=1:10
Y=[1 2 3 4 5 6 7 8]
Z=1:-1:-10
Plot(x)
Plot(y)
Plot(x,z)
观察指令窗及图形窗中的结果。
2. subplot指令的使用;采样点数对绘图的影响的理解;title、axis指令的使用
键入所以下指令:
t1=(0:11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]),title('子图(3)')
subplot(2,2,4),plot(t2,y2)
axis([0,pi,-1,1]),title('子图(4)')
观察指令窗及图形窗中的结果。
3. 图形交互指令的使用
在(2)的四个子图上用ginput指令分别获取其峰值;
在(2)的四个子图中的子图1上用gtext指令将“不太完整的离散图形”字符串放置到图形上。
在子图2上用gtext指令将“完整的离散图形”字符串放置到图形上。
在子图3上用gtext指令将“失真的连续图形”字符串放置到图形上。
在子图4上用gtext指令将“正确的连续图形”字符串放置到图形上。
t1=(0:11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)'),gtext('不太完整的离散图')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)'),gtext('完整的离散图形')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(3)'),gtext('是真的连续图形')
subplot(2,2,4),plot(t2,y2),axis([0,pi,-1,1]),title('子图(4)'),gtext('正确的连续图形')
4. 其它绘图指令的使用及精细指令的使用
键入所以下指令:
clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>0.05));ts=max(tt);
plot(t,y,'r-','linewidth',3)
axis([-inf,6*pi,0.6,inf])
set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]) grid on
title('\ity=1-e^{-\alphat}cos{\omegat}')
text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')
text(13.5,1.1,'\fontsize{12}{\omega}=0.7')
hold on;plot(ts,0.95,'bo','markersize',10);hold off
cell_string{1}='\fontsize{12}\uparrow';
cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';
cell_string{3}='\fontsize{6}';
cell_string{4}=['\fontsize{14}\rmt_{s}=' num2str(ts)];
text(ts,0.85,cell_string)
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
观察指令窗及图形窗中的结果。
观察指令窗及图形窗中的结果。
B 、画出t e y t cos 5.0-=的曲线(t 的取值范围是0到2π),在x 轴上标上0.5,1.2和4.5三个刻度。
在y 轴上标0.2,1.0,3.5三个刻度。
用xlabel 在横轴下标上t;用ylabel 在y 轴左侧标y 在图上用“小红圈”标出第一次使y=0.6的那点位置,并要求在该点旁边用12号字,斜体
标出其横坐标。
t=linspace(0,2*pi,1000);
d=exp(-0.5*t);
m=cos(t);
y=d.*m;
plot(t,y);
value=0.6;
pos=find(abs(y-value)<0.001); pos=pos(1);
t2=t(pos);
y2=y(pos);
hold on;
plot(t2,y2,'or','MarkerSize',5);。