六.图形功能
1.二维图形 (命令词,plot )
例1:已知x取值为 1,2,3,4,5,6
y取值为 0,0.5,0.7,1.1,0.9,0.2
请以x为横坐标、y为纵坐标,画出折线图。
解:以下三个方法中的任意一个都可以,其结果完全一样
(1)x=[1,2,3,4,5,6];y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y)
(2)x=1:6;y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y)
(3)y=[0,0.5,0.7,1.1,0.9,0.2];plot(y)
例2:画出正弦曲线y=sin(x)在区间上的图形。
练习: 画图一图多线:(在同一个坐标图中画两条以上的曲线)
法一:例1:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)
例2:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);
y3=(sin(x)+cos(x))/2;plot(x,y1,x,y2,x,y3)
例3:在同一图中画四条线,横坐标范围是[0,2],函数分别是
y= y= y= y
x1=0:pi/10:2*pi;y1=(1+sin(x))/2;x2=[0,2*pi];y2=x2/(2*pi);
y3=x1.*(2*pi-x1)/pi^2;y4=[0.6,0.6];
plot(x1,y1,x2,y2,x1,y3,x2,y4)
法二:重做例3:只需把plot(x1,y1,x2,y2,x1,y3,x2,y4)改成
hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),hold off
习题:在同一图中画四条线,横坐标范围是[1,2+1],函数分别是
,,,
加“坐标网格”:
法一:在 plot(……) 之后紧跟 grid
演示:plot(x1,y1,x2,y2,x1,y3,x2,y4),grid
或者hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),grid,hold off
法二:事后补加(先画好没有网格的图,再补加网格)
演示:先命令plot(x1,y1),再命令grid
加“标记”:(1)给图加标题:title(‘******’)
(2)给坐标轴加标记:横轴:xlabel(‘******’)
纵轴:ylabel(‘******’)
(3)给曲线加标记:text(aaa,bbb,‘******’)
说明:这四个命令的用法与前面grid相同(紧跟plot(….),或事后补加);
红色符号是本质(包括:小括号、逗号、单引号),不可改变;
***** 是你准备加注的字符,由你自己决定;
你准备把“曲线标记”放在哪个位置? 答:aaa是横坐标,bbb是纵坐标。
演示:略写,教师在课堂机器上演示。
对坐标系进行控制:
axis equal 使得横轴与纵轴的单位长度相同;
axis square 使得图呈现正方形;
axis(aax,bbx,aay,bby) 实现你的愿望:使得横坐标从aax到bbx、纵坐标从aay到bby,
演示:略写,教师在课堂机器上演示。
多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰关键词:subplot(m,n,p),把画面分割成个图形区域,p代表第几个图。
例如:借用前面的 x1,x2,y1,y2,y3,y4,
subplot(1,4,1),plot(x1,y1)
subplot(1,4,2),plot(x2,y2),grid
subplot(1,4,3),plot(x1,y3),grid
subplot(1,4,4),plot(x2,y4)
结果真难看! 改
subplot(2,2,1),plot(x1,y1)
subplot(2,2,2),plot(x2,y2),grid
subplot(2,2,3),plot(x1,y3),grid
subplot(2,2,4),plot(x2,y4)
结果好看了!
习题:同一个画面上6幅图:

2.三维图形
先不动脑筋,看别人做的一个三维曲面图,感受一下Matlab作图效果。
例:画出曲面
解:x=-7.5:0.5:7.5;y=x; [X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;
mesh(X,Y,Z)
(1)带网格的曲面图 (关键词:mesh )
例如:画曲面
x=-0.5:0.1:0.5;y=x;
[X,Y]=meshgrid(x,y); (组建三维图形的X,Y数组)
Z=sqrt(1-X.^2-Y.^2);
mesh(X,Y,Z) (画图)
(2)曲面的等高线图 (关键词:contour3 )
续上题:把 mesh(X,Y,Z) 改为 contour3(X,Y,Z,5)
(其中,5 是准备画5条等高线)
(3)空间三维曲线图 (关键词:plot3 )
例:螺旋线的参数方程为:
试在范围内,画出该曲线。
解:t=-20:pi/30:20;x=sin(t);y=cos(t);z=t;plot3(x,y,z)
习题:曲面,分别画网格图和等高线图。
曲线  自己适当取t的范围。
七.程序
1.编写、保存、打开、修改、执行程序编写新程序:击活菜单File,选New,单击M—file,进入编辑区,可编写程序。
例1:(演示:怎样编写、保存、打开、修改、执行程序?)
请按照规律1+2=3,2+3=5,3+5=8,5+8=13写出30个数作为一个数组a=[1,2,3,5,8,13,……],
简要说明:(1)保存新文件:File----Save,文件名必须字母打头;
(2)打开旧文件:File----Open----文件名,打开以后就可修改内容;
(3)执行:Debug----Run,
2.关系运算,逻辑运算
(1)关系运算:(比较两个数)
共6种运算符,< > <= >= == ~=
小于 大于 小于或等于 大于或等于 等于 不等于
练习,1<2 1>2 2<2 2<=2 1==2 1~=2
课堂判断,??????
Matlab规定:当关系成立时,结果是1;当关系不成立时,结果是0,
课堂做,且机器检验,(1<2)=? (1>2)=? (2<2)=?
(2<=2)=? (1==2)=? (1~=2)=?
习题,a=1:5 b=5:-1:1
c=a>=3,d=a==3,e=a<b,f=a==b
先手工算出 数组c,d,e,f,再上机器检验。
(2)逻辑运算,共有3种,& | ~
与(并且) 或 非(不是)
Matlab规定:(1) 当关系真时,结果是1;当关系假时,结果是0 ;
(2)若关系运算和逻辑运算混合了,则,关系运算优先,逻辑运算靠后,整体还叫关系表达式。
学习体会:这个符号“=”,它不叫“等号”,而叫“赋值号”。关系符号、逻辑符号都比它优先。
练习:a=1:8 b=8-a c=~(a>4) d=(a>=3)&(b<6)
则 a=
b=
c=
d=
3.选择结构(又称:条件语句)
格式一,if <关系表达式> 若 关系表达式 的值是1,则执行语句1;
<语句1> 若 关系表达式 的值是0,则不执行语句1,而去
end 执行end后面的语句。
格式二,if <关系表达式> 若 关系表达式的值是1,则执行语句1,再跳到end后面;
<语句1> 若 关系表达式的值是0,则不执行语句1,而执行语句2
else
<语句2>
end
格式三,if <关系表达式1> 若 关系表达式1的值是1,
<语句1> 则执行语句1,再跳到end后面;
elseif <关系表达式2> 若 式1假且式2真,
<语句2> 则执行语句2,再跳到end后面;
elseif <关系表达式3> 若 式1假、式2假且式3真,
<语句3> 则执行语句3,再跳到end后面;
…… …… …… 略。
end
4.循环结构格式一,for <循环参数> = <初值>,<步长>,<终值>
<语句1>
end
说明:对于每个参数值,都重复执行一次语句1,
(课堂上,借用前面程序作解释)
例2:请输入、并显示一个20阶方阵,它的元素满足
解,笨法一:A=[1,2,3,4,…,19,20;2,3,4,…,21;……]
方法二:编程,程序清单如下:
for i=1:20
for j=1:20
A(i,j)=i+j-1;
end
end
A
( 循环结构中套循环!)
有时,程序中必需循环结构,但找不道合适的循环参数,或不知道循环次数,就用下面格式:
格式二,while <关系表达式1>
<语句1>
end
说明:每次执行完语句1,都要倒回去检验关系表达式1,只要关系表达式1的值是1,就再执行语句1。就这样重复执行直到关系表达式1的值是0为止。初学者慎用此结构,避免陷入死循环。
死循环例子:a=0;
while a>=0
a=a+1;
end
例3:记,求自然数m,使得
解,(课堂现编)