第二讲 Matlab编程与作图Word文档下载推荐.docx
《第二讲 Matlab编程与作图Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第二讲 Matlab编程与作图Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
2、运算符
关系运算符:
<
<
=,>
>
=,==,~=
逻辑运算符:
与(&
),或(|),非(~)
编写分段函数
%myfun1.m
functiony=myfun1(x)
y=(x.^2).*(x>
1)+(x>
-1&
x<
=1)+(3+2*x).*(x<
=-1);
注意:
1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;
2.函数名与保存的文件名最好一致。
3、控制流
所有的计算机编程语言都提供了控制程序流执行程序的语法,Matlab也不例外。
所有的控制流语法都以end结尾。
⑴for循环语句
语法:
for循环变量=数组
指令组;
end
解释:
对于循环变量依次取数组中的值,循环执行指令组直到循环变量遍历数组。
数组最常用的形式是初值:
步长:
终值。
构造Hibert矩阵
⑵while循环
语法:
while条件式
当条件式满足,循环执行指令组直到条件式不满足。
使用while语句要注意避免出现死循环。
利用迭代公式
求
近似值,要求误差不超过指定精度。
[Sqrt.m]
⑶分支语句
if条件表达式1
指令组1;
[elseif条件表达式2
指令组2;
]
[·
·
[else
指令组k;
如果条件表达式1满足,则执行指令组1,且结束该语句;
否则检查条件表达式2,若满足则执行指令组2,且结束该语句;
;
若所有的条件都不满足,则执行指令组k,并结束该语句。
用条件语句编写分段函数[myfun2.m]
⑷开关语句
switch分支变量
case值1
case值2
·
otherwise
解释:
若分支变量的值取值1,则执行指令组1,且结束该语句,若分支变量的值取值2,则执行指令组2,且结束该语句,·
若分支变量不取所列出的值,则执行指令组k。
关于switch和input的用法。
[useswitch.m]
⑸其它常用指令
●input指令提示用户从键盘输入数值、字符串或表达式,并接收该输入,语法为:
user_entry=input(‘message’)
user_entry=input(‘message’,’s’)
●pause指令使程序运行暂停,语法为
pause:
暂停执行程序,等待用户按任意键继续。
pause(n):
使程序暂停n秒后继续执行。
forn=1:
4
x=-1:
0.1:
1;
y=x.^n;
plot(x,y)
pause
end
●return指令结束return指令所在函数的执行,返回到主调函数或者命令窗口。
●break指令中断执行,用在循环语句内表示跳出循环。
●error(’message’)显示出错信息,终止程序执行。
编写用区间迭代法求函数零点的程序。
[intfzero.m]
4、其它一些有用的函数
●fcnchk函数验证函数
f=fcnchk(fun),fun可以是由字符串表示的函数表达式,(这时返回一个inline函数),也可以是函数句柄,或是函数名字符串。
f=fcnchk(fun,‘vectorized’),生成向量化函数,例如用.*代替*
举例将intfzero.m文件中的语句f=inline(fun);
换成f=fcnchk(fun);
●nargin,nargout函数中输入参数或输出参数的个数。
●%注释语句
●find寻找数组中非零元素对应的下标。
S=find(A),[I,J]=find(A)
重编上面的分段函数[myfun3.m]
●取整函数round(x),ceil(x),floor(x),fix(x)
第二部分Matlab作图
1、曲线图
●plot(x,y)作出以数据(x(i),y(i))为节点的折线图,其中x,y为同维数的向量。
●plot(x,y,s)其中s是由颜色、标记、线型参数组成的字符串
颜色标记线型
bblue.point-solid
ggreenocircle:
dotted
rredxx-mark-.dashdot
ccyan+plus--dashed
mmagenta*star(none)noline
yyellowssquare
kblackddiamond
wwhitevtriangle(down)
^triangle(up)
<
triangle(left)
>
triangle(right)
ppentagram
hhexagram
●plot(x1,y1,s1,x2,y2.s2,…)在同一个坐标系中作出由向量对(x1,y1),(x2,y2),…为节点的折线。
在同一坐标系中作出函数
和
在区间[-1,2]上的图形。
●holdon(off)保持(释放)图形窗口
●polar(theta,rho)作以(theta,rho)为坐标的极坐标图形,theta,rho为同维数的向量
作出四叶玫瑰线
的图形。
●fplot(fun,[a,b])作出函数fun在区间[a,b]上的图形。
●plot3(x,y,z)作空间曲线的图形,x,y,z为同维向量。
作出曲线
●subplot(m,n,k)将图形窗口分成
个子图形窗口,将当前操作定位在第k个子图形窗口。
2、曲面图
[X,Y]=meshgrid(x,y)生成以数组x,y为坐标的网格矩阵
mesh(X,Y,Z)绘制网面图,X、Y、Z是同维矩阵
surf(X,Y,Z)绘制曲面图,与mesh用法类似。
作出曲面
在
上的图形
●ezmesh(fun)轻松绘出二元函数fun的曲面图(easytousemesh)
绘图区域为
●ezmesh(fun,[xmin,xmax,ymin,ymax])在指定区域绘图
●ezmesh(fun,…,’circ’)绘图区域为圆域
上机练习
1、设x为一个长度为n的数组,编程求下列均值和标准差
2、求满足
的最小m值。
3、用循环语句形成Fibonacci数列
,并验证极限
。
(提示:
计算至两边误差小于精度
)
4、分别用for和while循环结构编写程序,求出
并考虑一种避免循环语句的程序设计,比较不同算法的运行时间。
5、求出所有的“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为
6、假定某天的气温变化记录如下表,试作图描述这一天的气温变化规律。
时刻t(h)
1
2
3
5
6
7
8
9
10
11
12
温度T(℃)
15
14
16
18
20
22
23
25
28
13
17
19
21
24
31
32
29
27
7、作出下列函数图像
⑴曲线
(要求分别使用plot或fplot完成)
⑵椭圆
⑶抛物面
⑷曲面
⑸空间曲线
⑹半球面
⑺三条曲线合成图
8、作下列分段函数图
9、用MATLAB函数表示下列函数,并作图