Matlab绘图功能Word文档下载推荐.docx

上传人:b****5 文档编号:18003059 上传时间:2022-12-12 格式:DOCX 页数:31 大小:965.68KB
下载 相关 举报
Matlab绘图功能Word文档下载推荐.docx_第1页
第1页 / 共31页
Matlab绘图功能Word文档下载推荐.docx_第2页
第2页 / 共31页
Matlab绘图功能Word文档下载推荐.docx_第3页
第3页 / 共31页
Matlab绘图功能Word文档下载推荐.docx_第4页
第4页 / 共31页
Matlab绘图功能Word文档下载推荐.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Matlab绘图功能Word文档下载推荐.docx

《Matlab绘图功能Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Matlab绘图功能Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。

Matlab绘图功能Word文档下载推荐.docx

dottedline虚点连线

-.dash-dotline点划线

常用标记的定义为:

+plussign十字标记

ocircle小圈标记

*asterisk星号标记

.point黑点标记

xcross叉号标记

ssquare方框标记

ddiamond菱形标记

^upwardpointingtriangle上三角标记

vdownwardpointingtriangle下三角标记

>

rightpointingtriangle右三角标记

<

leftpointingtriangle左三角标记

pfive-pointedstar(pentagram)五角星标记

hsix-pointedstar(hexagram)六角星标记

颜色的定义是:

rred红

ggreen绿

bblue蓝

ccyan兰绿色

mmagenta洋红

yyellow黄

kblack黑

wwhite白

另外,利用线型属性和标记属性可以随心所欲地设计作图图式。

LineWidth定义线的宽度,默认为1

MarkerEdgeColor定义标记的边缘颜色

MarkerFaceColor定义标记面的颜色

MarkerSize定义标记记号的大小

举例1:

t=0:

pi/20:

plot(t,sin(t),'

-.r*'

%用红色点划线和星号作图

holdon;

%保持当前图形不被擦除

plot(sin(t-pi/2),'

--bp'

%用蓝色虚线和五角星标记作图

plot(sin(t-pi),'

ks'

%用黑色虚点线和方框标记作图

holdoff;

结果如图5.2所示(黑白印刷时颜色表现不出来)。

图5.2二维绘图线型和标记的特征控制

(1)

举例2:

plot(t,sin(2*t),'

-mo'

…%线型:

实线,洋红色,小圆标记

'

LineWidth'

2,…%线宽为2

MarkerEdgeColor'

'

k'

…%标记边缘颜色:

黑色

MarkerFaceColor'

[.491.63],…%标记面颜色:

淡绿

MarkerSize'

12);

%标记大小:

12

结果如图5.3所示。

图5.3二维绘图线型和标记的特征控制

(2)

5.1.3图形的标注

图形的标注可以用text函数。

其用法是:

text(x,y,'

字符串'

text(...'

PropertyName'

PropertyValue...);

其中,'

为字符属性名称,PropertyValue为相应的属性取值。

字符串中若有特殊符号,如希腊字母、箭头等,需要采用LaTeX格式表示。

用doctext_props可以得到详细的用法手册。

对于常用的一些,举例如下:

●改变字符大小。

属性为'

FontSize'

,取值为:

101216…

●改变字符字体。

FontName'

'

Courier'

,'

宋体'

黑体'

●改变字体背景颜色。

BackgroundColor'

[R,G,B]和'

r'

b'

w'

(红,蓝,黑,白)等,参见手册docColorSpec。

命令xlabel,ylabel,title等也可用类似方法修改字体属性。

详见帮助文档。

修改上例为:

plot(X,Y,'

--r'

%用红色虚线作图

14);

%Y轴标注,设置了字号

%X轴标注,设置了字号

%图标题,设置了字号

...%...为续行号

'

18,...%字号为18号

%背景为白,字符部分将盖住网格线,使字符更清晰

[0.80.80.8]);

%'

[0.70.70.7]使得背景为灰色

结果如图5.4所示。

图5.4修改作图字体属性,线型属性

5.1.4坐标轴的控制方法

Matlab中对作图坐标轴的设置十分灵活,功能十分强大。

用命令docaxes可以获得完整的帮助文档。

与坐标轴设置相关的命令有:

axis,get,set,gca等等。

下面对常用的坐标轴设置作简要介绍。

(1)作图坐标范围设置(axis命令)

axis([xminxmaxyminymax])%用于设置x,y坐标作图范围

axisoff%用于不显示坐标

axison%用于显示坐标(默认)

(2)网格的控制(grid命令等)

gridon%用于显示网格

gridoff%用于不显示网格

set(gca,'

XGrid'

on'

)%用于只显示X方向网格

YGrid'

)%用于只显示Y方向网格

GridLineStyle'

)%用于设置网格的线型,具体如下:

-'

表示实线;

--'

表示虚线;

表示虚点线(默认);

-.'

表示点划线

(3)坐标轴线型的控制

2)%控制坐标轴线宽度为2(默认为1)

(4)坐标形式的控制

box'

)%用于显示封闭形式的坐标(默认)

off'

)%用于显示开放形式的坐标

(5)坐标刻度方向控制

TickDir'

in'

)%坐标刻度朝内(默认)

out'

)%坐标刻度朝外

(6)坐标颜色控制

Color'

y'

)%坐标面背景颜色设置,本例为:

XColor'

)%设置横坐标轴,刻度,字符的颜色

YColor'

)%设置纵坐标轴,刻度,字符的颜色

(7)坐标刻度字形的控制

14)%控制字体大小

FontWeight'

bold'

)%设置字体粗细,有{normal}|bold|light|demi四种

(8)坐标位置和方向控制

XAxisLocation'

top'

)%横坐标轴位于下方(bottom默认)或上方(top)

YAxisLocation'

right'

)%纵坐标轴位于左方(left默认)或右方(right)

XDir'

reverse'

)%横坐标反方向(由右到左为增)

YDir'

)%纵坐标反方向(由右到左为增)

(9)坐标刻度线性/对数标度的设置

XScale'

log'

)%横坐标轴位作对数标度

YScale'

)%纵坐标轴位作对数标度

%默认为线性标度'

linear'

%用semilogx()或semilogy(),loglog(),plot()可直接得到对数标度的作图。

(10)坐标刻度数的控制

XTick'

[])%横坐标不标度

[051629])%在横坐标值为0,5,16,29处标度

[20:

10:

100])%标度从20开始,间隔10标度,直到100

YTick'

[])%对纵坐标的标度设置,同上

[0:

5:

20])

XTickLabel'

{'

One'

;

Two'

Three'

Four'

})

%将开始的4个刻度依次标记为字符One,Two,Three,Four

%然后循环利用这4个标记将其余刻度全部标完。

YTickLabel'

%同上,对纵坐标作标记。

JohnG.Proakis著《数字通信》图5.2-4为二元信号的误码概率曲线。

复制如图5.5所示。

其中,两条曲线的计算公式为:

函数的定义是:

现在要求用Matlab生成该图,尽可能做到与原图接近。

作图分析:

观察图5.5,在作图时至少需要:

●曲线使用宽度为2的粗实线,颜色为黑;

●手工确定作图坐标范围并手工作出坐标刻度;

●进行标注,注意标注中需要写入公式等特殊字符,需用LaTeX格式;

●网格线需要设定为细实线;

●横坐标表示每比特SNR,用分贝表示,纵坐标是对数刻度的。

图5.5从《数字通信》图5.2-4复制的原图

作图程序如下:

Q=inline('

0.5.*erfc(x./sqrt

(2))'

%Q函数定义

gama_b_dB=0:

0.5:

14;

%横坐标范围(分贝)

gama_b=10.^(gama_b_dB./10);

%横坐标范围

Pb1=Q(sqrt(gama_b));

%曲线1计算

Pb2=Q(sqrt(2*gama_b));

%曲线2计算

plot(gama_b_dB,Pb1,'

-k'

gama_b_dB,Pb2,'

2);

%作图,线型为黑实线,宽度2像素

%纵坐标轴位作对数标度

axis([01410e-710e-1]);

%手工设置作图范围

SNRperbit,\gamma_b(dB)'

%横轴标注,并设定标注字号

Probabilityoferror,P_b'

%纵轴标注,并设定标注字号

%用于设置网格的线型为实线

%开启网格线

MinorGridLineStyle'

none'

%将对数分格的虚线去掉

2:

14]);

%在横坐标值为0,2,4...处标度

%下面是在图中写字

text(2.2,5e-3,'

\rho_r=-1'

...

12,...

text(2,2e-3,'

Antipodal'

text(2,1e-3,'

signals'

text(2,0.4e-3,'

P_b=Q(\surd2\gamma_b)'

text(10,2e-2,'

\rho_r=0'

text(10,9e-3,'

Orthogonal'

text(10,4e-3,'

text(10,1.5e-3,'

P_b=Q(\surd\gamma_b)'

结果如图5.6所示。

图5.6用Matlab作出的曲线图,对比图5.5

连续信号及其采样后的离散信号的表示。

任务:

以取样函数

为例,作出该函数在

内的波形图像。

f=inline('

sin(x)./x'

%定义波形函数

x=-10:

0.1:

10;

%x的计算范围,步进0.1

y=f(x+1e-16);

%计算波形,为避免0/0,x加一微小值

plot(x,y,'

--k'

%用黑色虚线作图(到此看一看作图结果)

axis([-1010-0.31.1]);

%到此作图坐标有何变化?

%保持前图

boxoff;

%坐标盒子打开(看一看坐标有何变化?

sample_time=-10:

1:

%设定离散信号的取样间隔为1

y_sample=f(sample_time+1e-16);

%计算离散信号样值

h=stem(sample_time,y_sample,'

fill'

%stem的用法与plot相同,专门用于画离散信号的火柴杆图

%stem的用法详见docstem帮助

结果如图5.7所示。

图5.7连续信号与离散信号在同一图中作出,注意boxoff的坐标形式

此外,我们还可以进一步对坐标轴标度进行手工设定。

例如将横坐标标度的字符进行任意设置,接上例,如果继续执行以下两句指令:

[-10:

2.5:

0,4:

4:

10]);

%设定标度位置

-10Ts'

-7.5Ts'

-5Ts'

-2.5Ts'

0'

4Ts'

8Ts'

});

%设定标度的符号

%设定坐标标注字号

则获得的结果如图5.8所示。

图5.8连续信号与离散信号在同一图中作出,对坐标标度进行了修改

举例3:

其他常用的特殊二维图形的绘制。

利用bar可以作出二维条形图,stairs可以作二维阶梯图。

其用法与plot类似。

1/pi:

stairs(t,sin(t),'

%阶梯图,注意与plot()所得图的区别

%阶梯图常用来表现取样后零阶保持器的输出波形

bar(t,0.5*sin(t),'

m'

%条形图,注意正弦波幅度减小了

axis([02*pi-1.11.1]);

%坐标范围

则获得的结果如图5.9所示。

图5.9正弦波的plot,stairs,bar作图表达的比较

5.1.5用极坐标作图

利用极坐标作图命令polar可以绘制极坐标表达的函数曲线。

例如绘制方程

和方程

theta=0:

10*pi;

r=0.001*theta.^2;

polar(theta,r);

%作极坐标曲线1并保持

0.01:

polar(t,sin(2*t).*cos(2*t),'

%作极坐标曲线2

得到极坐标图如图5.11所示。

图5.11用命令polar进行极坐标作图

5.2三维图形的绘制

5.2.1三维曲线的绘制

用命令plot3可以进行三维空间曲线的绘制。

plot3的常用格式是:

plot3(X1,Y1,Z1,...)plot3(...,'

PropertyValue,...)

详细用法参见docplot3显示的帮助文档。

举例如下,绘制三维曲线:

15*pi;

x=(10*pi-t).*sin(t);

y=(10*pi-t).*cos(t);

z=t;

plot3(x,y,z,'

3);

%作图,设定线型

%看一看,曲线像不像沙发的弹簧?

程序运行结果如图5.12所示。

图5.12三维曲线作图实例

采用命令stem3(x,y,z)可以作出三维火柴杆图。

例如:

stem3(x,y,z);

运行结果为图5.13所示。

图5.13用stem3进行的三维曲线作图实例

5.2.2三维曲面的绘制

Matlab绘制三维曲面的命令有:

(1)mesh(x,y,z)——绘制三维表面网格。

(2)surf(x,y,z)——绘制三维表面图。

这些命令的详细用法请参考帮助文档。

下面举例加以说明。

考虑绘制一个二元函数

为:

其中,绘制范围为

首先用meshgrid函数产生一个

的网格矩阵,即产生一个

轴坐标起始于-3,终止于3,步进为1的;

坐标起始于-2,终止于2,步进为1的网格分割。

其命令是:

[x,y]=meshgrid(-3:

3,-2:

2)

x=

-3-2-10123

y=

-2-2-2-2-2-2-2

-1-1-1-1-1-1-1

0000000

1111111

2222222

然后将得到的

代入

中计算出

z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y)

z=

0.00000.00000.00270-0.049800.0027

0.00000.00730.14940-0.367900.0027

0.00190.14651.10360-0.367900.0004

0.01370.39831.10360-0.049800.0000

0.01370.14650.14940-0.000900.0000

最后用

mesh(x,y,z);

作出三维表面网格图。

得到结果如图5.14所示。

图5.14用mesh进行的三维表面网格作图实例

为了使得作图更加精细,可以减小生成

网格的步进,当然,这是以增加计算量和内存需求为代价的。

[x,y]=meshgrid(-3:

2);

z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);

则得到更精细的结果,如图5.15所示。

图5.15更加精细的三维网格作图实例

利用命令

hiddenoff

可以使得网格“透明”,如图5.16所示。

图5.16显示隐含线的网格图

采用surf(x,y,z)代替mesh(x,y,z)后,则可以绘制出三维表面图形。

如图5.17所示。

图5.17三维表面图

如果使用指令meshc、meshz代替mesh指令,即

figure

(1);

meshc(x,y,z);

figure

(2);

meshz(x,y,z);

则分别作出带等高线图的以及给出零基准平面的三维网格图。

如图5.18所示。

图5.18(a)命令meshc带等高线的三维图(b)命令meshz给出零基准平面的三维图

如果使用指令surfc、surfl代替surf指令,则分别作出带等高线的三维表面图以及具有光照效果的三维表面图。

如图5.19所示。

z=(x.^

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1