您的当前位置:首页正文

matlab实验2

2022-12-08 来源:欧得旅游网


实验2 Matlab 绘图和可视化

一、实验目的

1、掌握绘制二维图形的常用函数。

2、掌握绘制三维图形的常用函数。

3、掌握图像读写函数和显示函数的使用方法。

二、实验内容

程序:

>> x=0:pi/50:2*pi;

y=(0.5+3.*sin(x)./(1+x.^2)).*cos(x);

plot(x,y)

xlabel('Variable X');

ylabel('Variable Y');

图像:

1.51Variable Y0.50-0.5-101234Variable X567

2、已知y1x2 , y2 cos(2x), y3 y1y2,完成以下操作:

(1)在同一坐标系下,用不同的颜色和线型绘制三条曲线。

程序:

x=-6:pi/100:6;

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

plot(x,y1,'b',x,y2,'g-.',x,y3,'r:')

xlabel('Variable X');

ylabel('Variable Y');

图像:

403020Variable Y100-10-20-30-6-4-20Variable X246

(2)在同一个图形窗口中,以子图的形式绘制三条曲线。

程序:

x=-6:pi/100:6;

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

subplot(3,1,1);plot(x,y1);

xlabel('Variable X');

ylabel('Variable Y');

subplot(3,1,2);plot(x,y2);

xlabel('Variable X');

ylabel('Variable Y');

subplot(3,1,3);plot(x,y3);

xlabel('Variable X');

ylabel('Variable Y');

图像:

40Variable Y200-61-4-20Variable X246Variable Y0-1-650-4-20Variable X246Variable Y0-50-6-4-20Variable X246

(3)在同一个图形窗口中,以子图的形式,分别用条形图、阶梯图、杆图和填

充图绘制三条曲线。

程序:

x=-6:pi/20:6;

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

subplot(4,1,1);bar(x,y1);

xlabel('Variable X');

ylabel('Variable Y');

subplot(4,1,2);stairs(x,y2);

xlabel('Variable X');

ylabel('Variable Y');

subplot(4,1,3);stem(x,y3);

xlabel('Variable X');

ylabel('Variable Y');

subplot(4,1,4);fill(x,y1,'r',x,y2,'b',x,y3,'g')

xlabel('Variable X');

ylabel('Variable Y');

图像:

Variable Y40200-810-1-6500-50-6500-50-6-4-20Variable X246-4-20Variable X246-4-20Variable X246-6-4-20Variable X2468Variable YVariable YVariable Y

程序:

t=linspace(0,3*pi/2,50);

s=linspace(0,pi/2,50);

[s,t]=meshgrid(s,t);

x=cos(s).*cos(t);

y=cos(s).*sin(t);z=sin(s);

colormap([0,1,1;0,0,1;1,0.5,1]);

surf(x,y,z);

xlabel('Variable X');

ylabel('Variable Y');

zlabel('Variable Z');

图像:

10.8Variable Z0.60.40.2010.50-0.5Variable Y-1-1-0.5Variable X0.501

4、熟悉使用matlab 图形处理工具箱,完成以下操作:

(1)利用imread 函数,读入一幅图像,并求出图像的大小信息。

程序:

x=imread('1.jpg');

size(x)

结果:

ans =

194 259 3

(2)利用imshow 函数,显示一幅图像。

程序:

>> imshow(x);

图像:

(3)利用rgb2gray 函数,把彩色图转为灰度图。

程序:

y=rgb2gray(x);

imshow(y)

结果:

(4)利用imwrite 函数,把图形按某种支持的格式写入另一图形文件。

程序:

x=imread('1.jpg');

imwrite(x,'1.jpg','bmp')

(5)利用subplot 函数,在一个窗口中显示多幅图像。

程序:

subplot(2,2,1);

imshow('10.jpg');

subplot(2,2,2);

imshow('11.jpg');

subplot(2,2,3);

imshow('12.jpg');

subplot(2,2,4);

imshow('13.jpg');

图像:

(6)利用imresize 函数,改变图像的大小。

程序:

x=imread('1.jpg');

y=imresize(x,2);

figure;imshow(y)

结果:

(7)利用imrotate 函数,对图像进行旋转。

程序:

x=imread('1.jpg');

y=imrotate(x,90);

imshow(y)

图片:

(8)利用edge 函数,对图形进行边缘检测,显示检测结果图。

程序:

x=imread('10.jpg');

y=rgb2gray(x);

z=edge(y);

figure,imshow(x);

figure,imshow(z)

图片:

5、设计一个简单界面。该界面至少应具有读入图像,输出图像等功能。

(1) 新建一个GUI: file/New/GUI/OK,即选择默认模板。在空白的界面中,拖入两个PushButton控件和一个axis控件。保存文件,文件名为dutu。

(2) 分别将两控件的String属性分别改为:“读入”和“关闭”。

(3) 编辑按钮功能:右击“读入”控件,View Callbacks/Callback,在代码区输入如下代码:

[filename,pathname] = ...

uigetfile({'*.jpg';'*.bmp';'*.gif'},'读入');

str = [pathname filename];

im=imread(str);

axes(handles.axes1);

imshow(im);

同理在“关闭”控件的代码区输入如下代码:

close(gcf);

(4)运行读入图片:

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