您的当前位置:首页正文

选修课MATLAB作业

来源:客趣旅游网


Matlab程序设计

作业

学院:信息科学与技术学院

专业:通信工程

姓名:***

学号:************

班级:通信4班

教师:***

日期:2014年11月9日

文件1

%学号:201313070404

%姓名:刘潇

clear all %清除工作空间的所有变量

clf %清除图形窗口的内容

mfilename('fullpath') %返回当前正在运行的函数所在文件的文件名

echo on

%本m文件运行后会输出6个图形

subplot(2,3,1) %subplot(m,n,p)是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,p表示图所在的位置。

t = 0:0.1:10;

z = impulse(1, [1 1 1], t);

stairs(t(1:5:end),z(1:5:end)) %stairs函数用于绘制阶梯状图,在图中为蓝色的那根线

hold on %hold on 表示保留原来的图

plot(t,z,'r') %绘图函数,在图中为红色的那根连续的线

plot([0 t(end)], [0 0], 'k:') %绘图函数,在图中为水平虚线,左边对准了0刻度线

title('Impulse Response - (STAIRS)') %在图形上方添上标题

subplot(2,3,2) %此函数表示接下来的图形绘制在第二个位置

theta = 2*pi*(0:74)/75;

x = cos(theta);

y = sin(theta);

z = abs(fft(ones(10,1), 75))';

stem3(x, y, z) %stem3函数绘制离散序列数据的三维杆图

title('Polar FFT - (STEM3)') %在图形上方添上标题

subplot(2,3,3) %此函数表示接下来的图形绘制在第三个位置

[X,Y,Z] = peaks(-2:0.25:2);

[U,V] = gradient(Z, 0.25);

contour(X,Y,Z,10); %该函数用于绘制矩阵的等高线

hold on %hold on 表示保留原来的图

quiver(X,Y,U,V); %使用箭头绘制矢量图

title('Surface Gradient - (CONTOUR & QUIVER)') %在图形上方添上标题

theta = 0:0.1:4*pi;

[x,y] = pol2cart(theta(1:5:end), theta(1:5:end));

subplot(2,3,4) %此函数表示接下来的图形绘制在第四个位置

polar(theta,theta)

axis([-13 13 -12.5 14.5])

title('Spiral Plot - (POLAR)') %在图形上方添上标题

subplot(2,3,5) %此函数表示接下来的图形绘制在第五个位置

compass(x,y) %在一个圆形带网格的区域内,使用带箭头的线条绘制从原点出发的若干向量。绘制出来的效果图就像一个罗盘

axis([-13 13 -12.5 14.5])

title('Direction Vectors - (COMPASS)') %在图形上方添上标题

subplot(2,3,6) %此函数表示接下来的图形绘制在第六个位置

feather(x(1:19),y(1:19)) %feather复平面图形,把复数矩阵中的元素的相角和幅值显示成沿横轴等间隔辐射的箭头

axis([1 21 -5 10])

title('Direction Vectors - (FEATHER)') %在图形上方添上标题

set(gcf,'Position', [64 111 887 564])

echo off

shg

文件1运行后输出的图形为

文件2

%学号:201313070404

%姓名:刘潇

clear all %清除工作空间的所有变量

clf %清除图形窗口的内容

echo on

%本m文件运行后会输出6个图形

data = [10 2 3 5; 5 8 10 3; 9 7 6 1; 3 5 7 2; 4 7 5 3];

subplot(2,3,1) %subplot(m,n,p)是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,p表示图所在的位置。

bar(data, 'stacked'); %绘制直方图

title('Bar Graph - (BAR, ''stacked'')'); %在图形上方添上标题

subplot(2,3,2) %此函数表示接下来的图形绘制在第二个位置

bar3h(data); %绘制三维水平直方图

title('Horizontal Bar Graph - (BAR3H, ''grouped'')'); %在图形上方添上标题

subplot(2,3,3) %此函数表示接下来的图形绘制在第三个位置

hist(randn(1000,3)); %绘制直方图函数

title('Histogram - (HIST)'); %在图形上方添上标题

subplot(2,3,4) %此函数表示接下来的图形绘制在第四个位置

area(data); %area是填充画图区域的命令

title('Area Plot - (AREA)'); %在图形上方添上标题

subplot(2,3,5) %此函数表示接下来的图形绘制在第五个位置

pie3(sum(data), [0 0 1 0]); %画3维饼图的函数

title(['3-D Pie Chart';' (PIE3) ']); %在图形上方添上标题

subplot(2,3,6) %此函数表示接下来的图形绘制在第六个位置

rose(5/3*randn(1000,1), 18); %使用rose函数可以绘制玫瑰图

title('Polar Histogram - (ROSE)'); %在图形上方添上标题

set(gcf,'Position',[184 248 740 424]) %设置对象的属性

echo off

shg

文件2运行后输出的图形为

文件3

%学号:201313070404

%姓名:刘潇

echo on

%本m文件运行后会输出6个图形

subplot(2,3,1) %subplot(m,n,p)是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,p表示图所在的位置。

x = -3:0.3:3; y = x;

[X,Y]=meshgrid(x,y); % meshgrid()生成绘制3-D图形所需的网格数据

[theat,R] = cart2pol(X,Y); %在MATLAB中, 该函数用于把笛卡尔坐标转换为极坐标(柱坐标)

Z = sinc(R);

contourf(peaks(30), 10) %contourf()填充二维等高线图。即先画出不同等高线,然后相邻的等高线之间用同一颜色进行填充。填充用的颜色决定于当前的色图颜色

colorbar

grid on %打开网格线

title('Peaks Function - (CONTOURF & COLORBAR)') %在图形上方添上标题

subplot(2,3,2) %此函数表示接下来的图形绘制在第二个位置

plot3(X,Y,Z) %plot3(x,y,z)用来绘制3维曲线图

grid on %打开网格线

axis([-3 3 -3 3 -1 1])

title('Sinc Function - (PLOT3)') %在图形上方添上标题

subplot(2,3,3) %此函数表示接下来的图形绘制在第三个位置

waterfall(membrane(1)); %waterfall函数,绘制三维表面网格图,只是它的网格线在x轴方向出现,具有瀑布效果

title('L-shaped Membrane - (WATERFALL)') %在图形上方添上标题

subplot(2,3,4) %此函数表示接下来的图形绘制在第四个位置

contour3(peaks(30), 25); %三维空间等高线图,该命令生成一个定义在矩形格栅上曲面的三维等高线图

title('Peaks Function - (CONTOUR3)') %在图形上方添上标题

subplot(2,3,5) %此函数表示接下来的图形绘制在第五个位置

mesh(X,Y,Z) %生成由X,Y和Z指定的网线面

axis([-3 3 -3 3 -1 1])

title('Sinc Function - (MESH)') %在图形上方添上标题

subplot(2,3,6) %此函数表示接下来的图形绘制在第六个位置

surf(membrane(1)) %画三维曲面图

title('L-shaped Membrane - (SURF)') %在图形上方添上标题

set(gcf,'Position',[211 248 713 413]) %设置对象的属性

echo off

shg

文件3运行后输出的图形为

部分函数的具体用法

subplot函数

使用方法:subplot(m,n,p)或者subplot(m n p)。

subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表

示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。

plot函数

plot(x):x为长度为n的数值向量,坐标的纵坐标是向量x,横坐标为matlab系统根据x向量的元素序号自动生成的从1开始的向量。

plot(x,y):纵坐标是y,横坐标是x。x,y向量的数目必须相等。

plot(x):x为m*n的矩阵, plot(x)命令为矩阵的每一列画出一条线,共n条,曲线的横坐标为向量1:m,m是矩阵的行数。

plot(z): 可以复制复向量曲线 它与(plot(real(z),imag(z))等效,以实部为横坐标,虚部为纵坐标。

plot(x1,y1,x2,y2...) : 绘制多条曲线。

stem3函数

函数绘制离散序列数据的三维杆图,常用格式为: stem3(z) ,stem3(x,y,z)。

axis函数

axis(v):v是一维向量,形式可以是[xmin xmax ymin ymax],定义二维图形x轴和y轴坐标轴的范围,其中v向量中的元素必须满足:xminpolar函数

polar()进行极坐标系的绘图

polar(theta,rho):以弧度为theta和半径为rho在极坐标中进行绘图,其中两个输入参数满足极坐标下rho=f(theta),其作用相当于直坐标中的plot(x,y)。

hist函数

hist()绘制直方图

hist(y,n)将y的取值范围分成等差的n段,然后将所有元素分别分类到该n段中,根据每段元素个数绘制直方图的高度,n可以省略,默认值为10。

Hist(y,x)将y的取值分成等差的length(x)份,将y中的元素放到各个分段中,然后以x中元素指定的位置为中心的直方图。

Area(x,y)函数

area(x,y):若x和y是向量,则以x中的元素为横坐标,y中的元素为纵坐标,并且填充线条和x轴之间的空间,如果y是矩阵,则绘制y中每一列的和。

bar(x,y)或barh(x,y)函数

在指定的横坐标x上画出y,参数x为单调增加的。如果y为矩阵,则将每个行向量画出。

contour()绘制等高线图,contourf()绘制经过填充的等高线图

contour(z):绘制矩阵z的等高线。

Contour(x,y,z):在坐标(x,y)的值为矩阵z的等高线

Contour(z,n):绘制n条等高线。

Contour(x,y,z,[v v]):绘制高度为v的等高线。

compass函数:罗盘图

用法说明:

compass(x,y)函数绘制一个由原点出发由(x,y)组成的向量箭头图形;

compass(z)等价于compass(real(z),imag(z));

compass(...,LineSpec)函数用参量LineSpec指定箭头的线型、标记符号、颜色等属性;

h = compass(...)函数返回line对象的句柄给h。

feather函数

feather复平面图形,把复数矩阵中的元素的相角和幅值显示成沿横轴等间隔辐射的

箭头,格式feather(z),feather(x,y)等价于feather(x+y*i),feather(z,str),str是确定的线形绘制箭头。

rose函数

使用rose函数可以绘制玫瑰图,rose函数使用的基本方法是rose(t),其中t是随机数,绘制出来的图形为线性。

plot3函数

plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…)

其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。

mesh(x,y,z,c)函数

surf(x,y,z,c)函数

一般情况下,x,y,z是维数相同的矩阵,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c省略时,Matlab认为c=z,也即颜色的设定是正比于图形的高度的。这样就可以得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐标,然后绘制三维图形。当x,y是向量时,要求x的长度必须等于z矩阵的列,y的长度必须等于必须等于z的行,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲线。

pie3函数

绘制三维饼图,常用格式为:

pie3(x)

x为向量,用x中的数据绘制一个三维饼图。

因篇幅问题不能全部显示,请点此查看更多更全内容