matlab编程绘图方法-文档资料71页
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
环。使用for循环的算法执行很慢,一个好的 MATLAB算法部应当出现循环语句。 5. 循环可以使用break跳出,但只跳出所在的循环, 不跳出整个嵌套结构。
延边大学 信息管理专业
13
2 while循环
与for循环以固定的次数求一组指令相反,while循 环以不定的次数求一组语句的值。While循环的一 般形式为:
>>text(x, y, s); %指定位置加标注
>>title('正弦和余弦曲线'); %标题
>>legend('正弦','余弦') %添加图例注解
>>xlabel('时间') >>ylabel('正弦&余弦')
>>grid on
% x坐标名 % y坐标名 %添加网格
>>axis square %将图形设置为正方形
标记符号 P H
None
说明 五角星符号(pentagram) 六角星符号(1
点和线的基本属性
图形的属性
信息管理与信息系统专业 崔基哲
应用举例7——plot画一个圆
程序如下: R=2; t=0:pi/20:2*pi; x=R*sin(t);y=R*cos(t) plot(x,y,'b:'),grid
while expression commonds end
只要表达式expression里的所有元素为真,就执行 命令串commands。通常表达式求值给一个标量值, 单数组值也同样有效。
延边大学 信息管理专业
14
3 if-else-end结构
很多情况下,命令的序列必须根据关系的检验有 条件的执行,它由if-else-end结构提供。它的结构 如下:
2. plot(x, y):基本格式,x和y可为向量或矩阵。 3. plot(x1, y1, x2, y2,…):多条曲线绘图格式,在同
一坐标系中绘制多个图形。
4. plot(x, y, ‘s’): 开关格式,开关量字符串s设定了 图形曲线的颜色、线型及标记符号。
信息管理与信息系统专业 崔基哲
18
可任意设置颜色与线型
y3 = sin x cos x y 4 = sin 2 x cos2 x
x? [ 10,10]
>> plot(x,y2); >> title('第二个子图') >> subplot(2,2,3);
% 在左下角绘图
>> plot(x,y3,'mo'); >> title('第三个子图')
>> subplot(2,2,4); % 在右下角绘图
w 白色(white)
k 黑色(black)
代表的线型 实线(缺省值) 短划线 点连线(虚线) 点划线 不画线
信息管理与信息系统专业 崔基哲
20
图形颜色、标记和线形参数表
标记符号 + O * . X S D ∧ ∨ > <
说明 加号标记 圆圈标记 星号标记 点标记 叉型标记 正方形标记(square) 菱形标记(diamond) 朝上的三角符号 朝下的三角符号 朝右的三角形符号 朝左的三角形符号
信息管理与信息系统专业 崔基哲
S=[270,270,280,280,280,280,290,290,300,300,300,310, 320,320, 320,340,340,340,360,380,400]
N=[1064100,896100,391660,1078680,1360140,1602670,8 27340,314470,157660,201990,261120,263580,95580,98 110,165650,61860,68690,160940,59100,66230,34870]
0
-2
-1 -2
-3
延边大学 信息管理专业
9
简单例子4
A=[1,2,3;4,5,6;7,8,9] A=[1:3;4:6;7:9] .*是元素对元素的运算
延边大学 信息管理专业
10
单窗口多曲线绘图
t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y,t,y1,t,y2)
信息管理与信息系统专业 崔基哲
3
图形可视化的优点
以图形或图表的形式表现实验及科学计算
等的结果可以给人更直观的感受,自变量
与 因变量的关系、变量的分布趋势一目
了然。
GUI(Graphical
User
Interfaces)可以使得用户只
需利用鼠标等便捷的方式与计算机交互信息,
而无需记忆大量繁琐的命令。
信息管理与信息系统专业 崔基哲
27
图形修饰与控制——subplot
subplot——在图形窗口绘制子图形
调用:subplot(m,n,p)—— 图形窗口分成m×n个子窗口,并将第p子窗口作 为当前窗口。 子窗口的排列顺序为左上角为第一窗口
信息管理与信息系统专业 崔基哲
28
t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); subplot(1,3,1);plot(t,y); subplot(1,3,2);plot(t,y1); subplot(1,3,3);plot(t,y2);
信息管理与信息系统专业 崔基哲
26
例:绘制正弦和余弦曲线,并加入网格和标注
>>t=0:0.1:10;
>>y1=sin(t);
>>y2=cos(t);
>>plot(t,y1,'r',t,y2,'b- -');
>>x=[1.7*pi;1.6*pi];
>>y=[-0.3; 0.7];
>>s=['sin(t)';'cos(t)'];
例 :plot(t,y,'r-',t,y1,'g:',t,y2,'b*')
延边大学 信息管理专业
19
图形颜色、标记和线形参数表
符号 表示的颜色
符号
c 青色(cyan)
-
m 品红色(magenta) --
y 黄色(yellow)
:
r 红色(red)
-.
g 绿色(green)
none
b 蓝色(blue)
>> plot(x,y4,'g*'); >> title('第四个子图')
信息管理与信息系统专业 崔基哲
32
3.3 图形修饰与控制——figure
figure——用于打开多个图形窗口
plot命令绘图时,是以缺省方式创建1号窗口。 进行多窗口绘图时,需要按照窗口序号创建窗口,才可以在指定窗 口绘图。 如: >>x=linspace(-10,10); >>y1=…% 略 >>y2=…% 略 >>figure(1) %创建第1号窗口 >>plot(x,y1,’r’) >>figure(2) %创建第2号窗口 >>plot(x,y2,’-.b*’)
延边大学 信息管理专业
16
简单例子6
the result
plot 1
0.8
0.6
0.4
0.2
0
cos()
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
variable t
延边大学 信息管理专业
17
二维图形
plot函数绘制二维曲线,常用格式有:
1. plot(x):缺省自变量的绘图格式,x可为向量或 矩阵。
subplot(3,1,1);plot(t,y); subplot(3,1,2);plot(t,y1); subplot(3,1,3);plot(t,y2);
3.3 图形修饰与控制——subplot
subplot——在图形窗口绘制子图形
y1 = x cos x y 2 = x sin x + cos x y3 = sin x cos x y 4 = sin 2 x cos2 x
if expression1 commands1 else if expression2 commands2 else if … … else if commands end
延边大学 信息管理专业
15
简单例子5
8
6
4
2
0
-2
-4
0
5
10
15
20
25
30
35
40
45
%曲线1:红色实线,+号显示数据点 %曲线2:黑色点线,*号显示数据点 %曲线3:蓝色虚线,上三角形显示数据点 >> plot(x, y1, 'r+-', x, y2, 'k*:', x, y3,
'b--^')
信息管理与信息系统专业 崔基哲
25
图形修饰与控制
1. title —— 给图形加标题 2. xlable/ylable —— 给x轴/y轴加标注 3. text —— 在图形指定的任意位置加标注 4. gtext —— 利用鼠标将标注加到图形任意位置 5. grid on/off、grid —— 打开/关闭坐标网格线、切换方式 6. legend —— 添加图例 7. axis —— 控制坐标轴刻度 8. hold on/off、hold——图形叠加/叠加撤除、切换方式 9. subplot——显示多窗口(子图) 10.figure——多窗口绘图
Matlab编程—绘图
延边大学 经济管理学院 主讲:崔基哲
1
——Matlab语言丰富的图形 表现方法,使得数学计算 结果可以方便地、多样性 地实现了可视化,这是其 它语言所不能比拟的。
信息管理与信息系统专业 崔基哲
2
Matlab的学习方法
必须做大量的练习,熟悉其中的函数 联系和自己的课题相关,深刻的体会 多看帮助文件,又一本好的参考书 记住:Matlab可以做很多事情
for 和end之间的命令串按数组array的每一列执行 一次,直到n次后终止。
延边大学 信息管理专业
12
1 For循环应当注意的一些方面
1. for循环不能使用内部重新赋值循环变量而终止; 2. for循环内部接受任何有效的MATLAB数组; 3. for循环可以嵌套; 4. 只要有矩阵形式可以解决的问题,不要使用for循
y=2*sin(0.5*pi)/(1+sqrt(3))
延边大学 信息管理专业
8
简单例子3
[X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(X,Y,Z);
5
axis([-3 3 -3 3 -10 5]) 0
-5
-10 2
3
2
0
1
信息管理与信息系统专业 崔基哲
11
流程控制
为了便于应用,MATLAB提供了一些流程控制的 命令。这些命令对脚本编写带来了一些方便,但 是需要注意的是,尽量不要使用这些流程控制命 令,尤其是循环控制命令。
1 for循环 for循环允许一组命令以固定的次数重复,它的一
般形式是
for x=array command end
S与N之间的关系及趋势?
信息管理与信息系统专业 崔基哲
信息管理与信息系统专业 崔基哲
简单例子1
x = -pi:0.01:pi;
plot(x,cos(x)), grid on
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
1
2
3
4
延边大学 信息管理专业
7
简单例子2
信息管理与信息系统专业 崔基哲
x? [ 10,10]
31
3.3 图形修饰与控制——subplot
>> x=-10:0.01:10;
y1 = x cos x
>> y1=x.*cos(x); >> y2=-x.*sin(x)+cos(x);
y 2 = x sin x + cos x
>> y3=sin(x).*cos(x); >> y4=(sin(x).^2).*(cos(x).^2); >> subplot(2,2,1); % 在左上角绘图 >> plot(x,y1); >> title('第一个子图') >> subplot(2,2,2); % 在右上角绘图
2
1
0
-1
-2
-2
-1
0
1
2
信息管理与信息系统专业 崔基哲
23
例8:序列函数、sin函数
>> x=[3 5 7 6 12 24 15 33 6 9 7 2]; >> plot(x) %绘制以序号为横坐标,元素值为纵坐标的曲线
>>x=0:pi/10:2*pi; >>y=sin(x); >>plot(x,y) %绘制以x为横坐标,y为纵坐标的曲线
信息管理与信息系统专业 崔基哲
24
例9:绘制
y 1 = s in ( 2 x ) ,y 2 = s in ( x 2 ) ,y 3 = s in 2 ( x )
>> x=linspace(0,7); >> y1=sin(2.*x); >> y2=sin(x.^2); >> y3=(sin(x)).^2;
延边大学 信息管理专业
13
2 while循环
与for循环以固定的次数求一组指令相反,while循 环以不定的次数求一组语句的值。While循环的一 般形式为:
>>text(x, y, s); %指定位置加标注
>>title('正弦和余弦曲线'); %标题
>>legend('正弦','余弦') %添加图例注解
>>xlabel('时间') >>ylabel('正弦&余弦')
>>grid on
% x坐标名 % y坐标名 %添加网格
>>axis square %将图形设置为正方形
标记符号 P H
None
说明 五角星符号(pentagram) 六角星符号(1
点和线的基本属性
图形的属性
信息管理与信息系统专业 崔基哲
应用举例7——plot画一个圆
程序如下: R=2; t=0:pi/20:2*pi; x=R*sin(t);y=R*cos(t) plot(x,y,'b:'),grid
while expression commonds end
只要表达式expression里的所有元素为真,就执行 命令串commands。通常表达式求值给一个标量值, 单数组值也同样有效。
延边大学 信息管理专业
14
3 if-else-end结构
很多情况下,命令的序列必须根据关系的检验有 条件的执行,它由if-else-end结构提供。它的结构 如下:
2. plot(x, y):基本格式,x和y可为向量或矩阵。 3. plot(x1, y1, x2, y2,…):多条曲线绘图格式,在同
一坐标系中绘制多个图形。
4. plot(x, y, ‘s’): 开关格式,开关量字符串s设定了 图形曲线的颜色、线型及标记符号。
信息管理与信息系统专业 崔基哲
18
可任意设置颜色与线型
y3 = sin x cos x y 4 = sin 2 x cos2 x
x? [ 10,10]
>> plot(x,y2); >> title('第二个子图') >> subplot(2,2,3);
% 在左下角绘图
>> plot(x,y3,'mo'); >> title('第三个子图')
>> subplot(2,2,4); % 在右下角绘图
w 白色(white)
k 黑色(black)
代表的线型 实线(缺省值) 短划线 点连线(虚线) 点划线 不画线
信息管理与信息系统专业 崔基哲
20
图形颜色、标记和线形参数表
标记符号 + O * . X S D ∧ ∨ > <
说明 加号标记 圆圈标记 星号标记 点标记 叉型标记 正方形标记(square) 菱形标记(diamond) 朝上的三角符号 朝下的三角符号 朝右的三角形符号 朝左的三角形符号
信息管理与信息系统专业 崔基哲
S=[270,270,280,280,280,280,290,290,300,300,300,310, 320,320, 320,340,340,340,360,380,400]
N=[1064100,896100,391660,1078680,1360140,1602670,8 27340,314470,157660,201990,261120,263580,95580,98 110,165650,61860,68690,160940,59100,66230,34870]
0
-2
-1 -2
-3
延边大学 信息管理专业
9
简单例子4
A=[1,2,3;4,5,6;7,8,9] A=[1:3;4:6;7:9] .*是元素对元素的运算
延边大学 信息管理专业
10
单窗口多曲线绘图
t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y,t,y1,t,y2)
信息管理与信息系统专业 崔基哲
3
图形可视化的优点
以图形或图表的形式表现实验及科学计算
等的结果可以给人更直观的感受,自变量
与 因变量的关系、变量的分布趋势一目
了然。
GUI(Graphical
User
Interfaces)可以使得用户只
需利用鼠标等便捷的方式与计算机交互信息,
而无需记忆大量繁琐的命令。
信息管理与信息系统专业 崔基哲
27
图形修饰与控制——subplot
subplot——在图形窗口绘制子图形
调用:subplot(m,n,p)—— 图形窗口分成m×n个子窗口,并将第p子窗口作 为当前窗口。 子窗口的排列顺序为左上角为第一窗口
信息管理与信息系统专业 崔基哲
28
t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); subplot(1,3,1);plot(t,y); subplot(1,3,2);plot(t,y1); subplot(1,3,3);plot(t,y2);
信息管理与信息系统专业 崔基哲
26
例:绘制正弦和余弦曲线,并加入网格和标注
>>t=0:0.1:10;
>>y1=sin(t);
>>y2=cos(t);
>>plot(t,y1,'r',t,y2,'b- -');
>>x=[1.7*pi;1.6*pi];
>>y=[-0.3; 0.7];
>>s=['sin(t)';'cos(t)'];
例 :plot(t,y,'r-',t,y1,'g:',t,y2,'b*')
延边大学 信息管理专业
19
图形颜色、标记和线形参数表
符号 表示的颜色
符号
c 青色(cyan)
-
m 品红色(magenta) --
y 黄色(yellow)
:
r 红色(red)
-.
g 绿色(green)
none
b 蓝色(blue)
>> plot(x,y4,'g*'); >> title('第四个子图')
信息管理与信息系统专业 崔基哲
32
3.3 图形修饰与控制——figure
figure——用于打开多个图形窗口
plot命令绘图时,是以缺省方式创建1号窗口。 进行多窗口绘图时,需要按照窗口序号创建窗口,才可以在指定窗 口绘图。 如: >>x=linspace(-10,10); >>y1=…% 略 >>y2=…% 略 >>figure(1) %创建第1号窗口 >>plot(x,y1,’r’) >>figure(2) %创建第2号窗口 >>plot(x,y2,’-.b*’)
延边大学 信息管理专业
16
简单例子6
the result
plot 1
0.8
0.6
0.4
0.2
0
cos()
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
variable t
延边大学 信息管理专业
17
二维图形
plot函数绘制二维曲线,常用格式有:
1. plot(x):缺省自变量的绘图格式,x可为向量或 矩阵。
subplot(3,1,1);plot(t,y); subplot(3,1,2);plot(t,y1); subplot(3,1,3);plot(t,y2);
3.3 图形修饰与控制——subplot
subplot——在图形窗口绘制子图形
y1 = x cos x y 2 = x sin x + cos x y3 = sin x cos x y 4 = sin 2 x cos2 x
if expression1 commands1 else if expression2 commands2 else if … … else if commands end
延边大学 信息管理专业
15
简单例子5
8
6
4
2
0
-2
-4
0
5
10
15
20
25
30
35
40
45
%曲线1:红色实线,+号显示数据点 %曲线2:黑色点线,*号显示数据点 %曲线3:蓝色虚线,上三角形显示数据点 >> plot(x, y1, 'r+-', x, y2, 'k*:', x, y3,
'b--^')
信息管理与信息系统专业 崔基哲
25
图形修饰与控制
1. title —— 给图形加标题 2. xlable/ylable —— 给x轴/y轴加标注 3. text —— 在图形指定的任意位置加标注 4. gtext —— 利用鼠标将标注加到图形任意位置 5. grid on/off、grid —— 打开/关闭坐标网格线、切换方式 6. legend —— 添加图例 7. axis —— 控制坐标轴刻度 8. hold on/off、hold——图形叠加/叠加撤除、切换方式 9. subplot——显示多窗口(子图) 10.figure——多窗口绘图
Matlab编程—绘图
延边大学 经济管理学院 主讲:崔基哲
1
——Matlab语言丰富的图形 表现方法,使得数学计算 结果可以方便地、多样性 地实现了可视化,这是其 它语言所不能比拟的。
信息管理与信息系统专业 崔基哲
2
Matlab的学习方法
必须做大量的练习,熟悉其中的函数 联系和自己的课题相关,深刻的体会 多看帮助文件,又一本好的参考书 记住:Matlab可以做很多事情
for 和end之间的命令串按数组array的每一列执行 一次,直到n次后终止。
延边大学 信息管理专业
12
1 For循环应当注意的一些方面
1. for循环不能使用内部重新赋值循环变量而终止; 2. for循环内部接受任何有效的MATLAB数组; 3. for循环可以嵌套; 4. 只要有矩阵形式可以解决的问题,不要使用for循
y=2*sin(0.5*pi)/(1+sqrt(3))
延边大学 信息管理专业
8
简单例子3
[X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(X,Y,Z);
5
axis([-3 3 -3 3 -10 5]) 0
-5
-10 2
3
2
0
1
信息管理与信息系统专业 崔基哲
11
流程控制
为了便于应用,MATLAB提供了一些流程控制的 命令。这些命令对脚本编写带来了一些方便,但 是需要注意的是,尽量不要使用这些流程控制命 令,尤其是循环控制命令。
1 for循环 for循环允许一组命令以固定的次数重复,它的一
般形式是
for x=array command end
S与N之间的关系及趋势?
信息管理与信息系统专业 崔基哲
信息管理与信息系统专业 崔基哲
简单例子1
x = -pi:0.01:pi;
plot(x,cos(x)), grid on
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
1
2
3
4
延边大学 信息管理专业
7
简单例子2
信息管理与信息系统专业 崔基哲
x? [ 10,10]
31
3.3 图形修饰与控制——subplot
>> x=-10:0.01:10;
y1 = x cos x
>> y1=x.*cos(x); >> y2=-x.*sin(x)+cos(x);
y 2 = x sin x + cos x
>> y3=sin(x).*cos(x); >> y4=(sin(x).^2).*(cos(x).^2); >> subplot(2,2,1); % 在左上角绘图 >> plot(x,y1); >> title('第一个子图') >> subplot(2,2,2); % 在右上角绘图
2
1
0
-1
-2
-2
-1
0
1
2
信息管理与信息系统专业 崔基哲
23
例8:序列函数、sin函数
>> x=[3 5 7 6 12 24 15 33 6 9 7 2]; >> plot(x) %绘制以序号为横坐标,元素值为纵坐标的曲线
>>x=0:pi/10:2*pi; >>y=sin(x); >>plot(x,y) %绘制以x为横坐标,y为纵坐标的曲线
信息管理与信息系统专业 崔基哲
24
例9:绘制
y 1 = s in ( 2 x ) ,y 2 = s in ( x 2 ) ,y 3 = s in 2 ( x )
>> x=linspace(0,7); >> y1=sin(2.*x); >> y2=sin(x.^2); >> y3=(sin(x)).^2;