二维码的生成与实现(matlab)

二维码的生成与实现(matlab)
二维码的生成与实现(matlab)

课程设计报告

课题名称:二维码的生成与识别

项目完成人(班级、学号、姓名):

项目完成时间: 2017/6/15

一、引言

1、编写目的

本学期学习《数字图像处理》,包含很多知识点,像:图像编码与压缩、图像相关变换、图像增强技术、图像复原技术,这些知识点的应用在实际编程中都非常重要。

纸上得来终觉浅,绝知此事要躬行。所以,这次课程设计的目的主要就是巩固所学的数字图像处理的相关知识。最终是我们通过该教学环节,把该课程以及相关知识融会贯通。

2、背景

由于受信息的容量限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述,故一维条码的使用不得不依赖数据库存在。在使用上受到了极大的限制,效率很低。二维码正是为了解决一维条码无法解决的问题而产生的。二维码具有高密度、高可靠性等特点,可以用来表示数据文件、图像等,实现信息获取、网站跳转、广告推送、手机电商、优惠促销、会员管理等功能,具有很强的研究意义。

3、参考资料

《数字图像处理》第三版胡学龙

二、设计方案

1、图像采集

图像主要来自网上在线生成的二维码图像和该程序生成的二维码图像。

2、算法分析

预处理过程灰度化-----平滑处理------二值化

1.灰度化:一般都是为了减小图像原始数据量,便于后续处理时计算量更少,因为图像处理不一定需要对彩色图像的RGB三个分量都进行处理

2.平滑处理:图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。图像平滑的方法包括:插值方法,线性平滑方法,卷积法等等。这样的处理方法根据图像噪声的不同进行平滑,比如椒盐噪声,就采用线性平滑方法!

3.二值化:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

二维码解码

二维码解码主要使用的是ZXing库,ZXing是个很经典的条码/二维码识别的开源类库

3、代码实现

打开图像

function pushbutton1_Callback(hObject, eventdata, handles) global im;

[filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'} ,'选择图像');

if isequal(filename,0)||isequal(pathname,0)

errordlg('您还没有选取图片!!','温馨提示');%如果没有输入,则创建错误对话框return;

else

disp(['User selected',fullfile(pathname,filename)]);

fprintf('fffffff%s\n',filename);

im=imread(filename);%读取图像

figure

imshow(im);%在坐标axes1显示原图像

title('原始图像');

End

灰度化处理

function pushbutton4_Callback(hObject, eventdata, handles)

global im;

global II;

I=im;

[w,h,l]=size(I); %图像大小

II=[];

for i=1:h

for j=1:w

II(j,i)=0.3*I(j,i,1)+0.59*I(j,i,2)+0.11*I(j,i,3); %灰度化处理公式end

end

figure,imshow(II,[]) %显示图像

title('二维码灰度化处理');

平滑处理

function pushbutton5_Callback(hObject, eventdata, handles)

global II;

global I3;

III=uint8(II); %图像转换0-255

Ix=imnoise(III,'salt & pepper',0.02); %对灰度化图像人为加噪声

I3=medfilt2(Ix,[3,3]); %平滑处理

figure

imshow(Ix)

title('二维码加噪处理');

figure

imshow(I3)

title('二维码平滑处理');

二值化处理

function pushbutton6_Callback(hObject, eventdata, handles)

global I3;

global I_otsu;

I_otsu=otsut(I3); %二值化处理

figure

imshow(I_otsu,[])

title('二维码二值化处理');

旋转校正

function pushbutton7_Callback(hObject, eventdata, handles) global im;

%倾斜校正:二值化,取边缘,Hough变换得到角度,旋转

I=im;

bw=rgb2gray(I); %rgb转换为灰度图

bw=im2bw(I,graythresh(bw)); %二值化过程

bw=double(bw);

BW=edge(bw,'canny'); %canny边缘处理

BW1=BW;

figure

imshow(BW1);title('canny 边界图像'); %显示图像

[H,T,R]=hough(BW);

figure,imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); xlabel('\theta'),ylabel('\rho');

axis on, axis normal,hold on;

P=houghpeaks(H,4,'threshold',ceil(0.3*max(H(:)))); %hough变化峰值检测

x=T(P(:,2)); y = R(P(:,1));

plot(x,y,'s','color','white');

lines=houghlines(BW,T,R,P,'FillGap',50,'MinLength',7); %hough检测线段figure,imshow(BW),title('直线标识图像');

max_len = 0;

hold on;

for k=1:length(lines) %主要把线条和点显示出来

xy=[lines(k).point1;lines(k).point2];

% 标出线段

plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');

% 标出线段的起始和终端点

plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');

plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');

len=norm(lines(k).point1-lines(k).point2);

Len(k)=len;

if (len>max_len)

max_len=len;

xy_long=xy;

end

end

% 强调最长的部分

plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');

[L1 Index1]=max(Len(:));

% 最长线段的起始和终止点

x1=[lines(Index1).point1(1) lines(Index1).point2(1)];

y1=[lines(Index1).point1(2) lines(Index1).point2(2)];

% 求得线段的斜率

K1=-(lines(Index1).point1(2)-lines(Index1).point2(2))/...

(lines(Index1).point1(1)-lines(Index1).point2(1))

angle=atan(K1)*180/pi %显示角度A = imrotate(I,-angle,'bilinear');% imrate 是逆时针的所以取一个负号figure,imshow(A);

解码

function pushbutton3_Callback(hObject, eventdata, handles)

global I_otsu; %global 定义全局变量

global im;

global KL;

global Ijibian;

I_jiema=Ijibian;

I_jiema=I_otsu; %二值

I_jiema=KL;

I_jiema=im;

str=zxing_decode(I_jiema) %解码

set(handles.edit1,'String',str); %显示字符

三、出错处理

1、出错信息

2、出错处理方法及补救措施

主要是由于导入的jar包文件的路径错误而导致的,所以修改好对应的路径即可。

四、总结

总体感觉对相关数字图像的处理有了更深的理解。但是仍然感觉到自己还有不足,因为一些图像变换还不是太熟悉,以后自己一定会补上这一块。

利用MATLAB绘制二维函数图形

《MATLAB语言》课程论文 利用MATLAB绘制二维函数图形 姓名:海燕 学号:12010245375 专业:通信工程 班级:通信一班 指导老师:汤全武 学院:物理电气信息学院 成日期:2011年12月5 利用MATLAB绘制二维函数图形 (海燕 12010245375 2010级通信1班) [摘要]大学高等数学中涉及许多复杂的函数求导绘图极值及其应用的问题,例如二维绘图,对其手工

绘图因为根据函数的表达式的难易程度而不易绘制,而MATLAB语言正是处理这类的很好工具,既能简易的写出表达式,又能绘制有关曲线,非常方便实用。另外,利用其可减少工作量,节约时间,加深理解,同样可以培养应用能力。本文将探讨利用matlab来解决高等数学中的二维图形问题,并对其中的初等函数、极坐标、进行实例分析,对于这些很难用手工绘制的图形,利用matlab则很轻易地解决。[关键词]高等数学一元函数二元函数 MATLAB语言图形绘制 一、问题的提出 MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。中学数学中常见到的是二维平面图形,由于概念抽象,学生不好理解,致使学生对学习失去信心,导致学习兴趣转移。在传统的教学中,教师在黑板上应用教具做图,不能保证所做图形的准确性,曲线的光滑度不理想,教学过程显得枯燥无味,教学质量难以保证。Matlab是集数值计算、符号计算和图形可视化三大基本功能于一体的大型软件,广泛应用于科学研究、工程计算、动态仿真等领域。Matlab是一种集成了计算功能、符号运算、数据可视化等强大功能的数学工具软件。其代码的编写过程与数学推导过程的格式很接近,所以使编程更为直观和方便,应用于教学就更加容实现Matlab软件尤 其在简单的绘图中有较强的编辑图形界面功能,在中学的数学教学中的抽象函数变得直观 形象、容易实现,同时也激发学生的学习兴趣,学生通过数形结合,更好地理解题意高等数学是一门十分抽象的学科,对于一些抽象的函数,我们可以借助于几何图形来理解,但这类图形的绘制往往很复杂,仅凭手工绘制也难以达到精确的效果,这时如果使用Matlab来解决所遇到的图形问题,则能达到事半功倍的效果。在高等数学领域中有关图形方面的应用,无论是初等函数图形、还是极坐标图形、统计图,对于Matlab而言都是完全可以胜任的。 下面结合实例从几个方面来阐述matlab在高等数学二维图形中的应用。 二、用matlab绘制一元函数图像 1.平面曲线的表示形式 对于平面曲线,常见的有三种表示形式,即以直角坐标方程 ] , [ ), (b a x x f y∈ =,以参数方程 ] , [ ), ( ), (b a t t y y t x x∈ = =,和以极坐标] , [ ), (b a r r∈ =? ?表示等三种形式。 2.曲线绘图的MATLAB命令 MATLAB中主要用plot,fplot二种命令绘制不同的曲线。 可以用help plot, help fplot查阅有关这些命令的详细信息 问题1 作出函数 x y x y cos , sin= =的图形,并观测它们的周期性。先作函数x y sin =在

matlab二维平面图形的绘制

1、基本图形函数 函数polt是针对向量或矩阵的列来绘制曲线的,其命令格式:(1)plot(x)当x是一向量时,以其元素为纵坐标,其序号为横坐标。 (2)plot(x,y) (3)plot(x,y1,x,y2,...)绘制多条曲线 例 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

参数选项 y黄 m紫 c青 r红 g绿 b蓝 w白 k黑-实线 :点线 -.点划线 --虚线 .点 o圆 x叉号 +加号 *星号 v下三角 ^上三角 >大于号 <小于号 s正方形 d菱形 h六角形 p五角星 例 >> plot(x,y1,'r+-',x,y2,'k*:')

2、图形修饰 图形修饰函数: grid on(/off) 添加或取消网格 xlabel('string')标记横坐标 ylabel('string')标记横坐标 title('string')添加标题 text(x,y,'string')在图形的任意位置增加文本信息gtext('string')利用鼠标添加文本信息 axis([xmin xmax ymin ymax])设置坐标轴的最小最大值例

>> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) >> grid on >> xlabel('Independent Variable X') >> ylabel('Dedependent Variable Y1&Y2') >> title('sine and cosine curve') >> text(1.5,0.3,'cos(x)') >> gtext('sin(x)')

matlab上机习题5matlab7.0二维绘图

实验五二维绘图 实验目的: ①掌握绘制数据曲线图的方法; ②掌握绘制其他坐标系下的数据曲线图和统计分析图的方法; ③掌握绘制隐函数图形的方法。 ④掌握图形修饰处理方法; 实验要求:给出程序和实验结果。 实验内容: 8. 编制程序,该程序绘制两条曲线,x的取值在[0,2pi],易pi/10为步长,一条是正弦曲线,一条是余弦曲线,线宽为6个象素,正弦曲线为绿色,余弦曲线为红色,线型分别为实线和虚线。给所绘的两条曲线增添图例,分别为“正弦曲线”和“余弦曲线”。 9. 在同一坐标内,分别用不同线型和颜色绘制曲线y1= 和y2=(πx),标记两曲线交叉点。 10. 在0≤x≤2区间内,绘制曲线y1=和y2=cos(4πx),并给图形添加图形标注。 11.重新绘制第一题所描述的曲线,将正弦曲线和余弦曲线分别画在两个子图中,子图竖向排列。

12、绘制r=sin(t)cos(t)的极坐标图; 13、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 实验程序与结果: 1 x=-2::2; y=sin(x).*cos(x); plot(x,y,'-r') -2 -1.5 -1 -0.5 0.5 1 1.5 2 -0.5-0.4-0.3-0.2-0.100.10.20.30.4 0.5 2 ezplot('x^2/9+y^2/16-1',[-5,5,-5,5]);

x y x 2/9+y 2/16-1 = 0 -5 -4 -3 -2 -1 01 2 3 4 5 -5-4-3-2-101234 5 3 x1=-2::2; x2=-2::2; y1=sin(x2).*x1; y2=cos(x1).*x2; plot3(x1,x2,y1,'d',x1,x2,y2,'d')

matlab二维图形的绘制

matlab二维图形的绘制(2006-11-20 20:38:35) 转载 ▼ 分类:matlab基础(电子方向) 常用的二维图形命令:

plot:绘制二维图形loglog:用全对数坐标绘图semilogx:用半对数坐标(X)绘图semilogy:用半对数坐标(Y)绘图fill:绘制二维多边填充图形polar:绘极坐标图bar:画条形图stem:画离散序列数据图stairs:画阶梯图errorbar:画误差条形图hist:画直方图fplot:画函数图title:为图形加标题xlabel:在X轴下做文本标记ylabel:在Y轴下做文本标记zlabel:在Z轴下做文本标记text:文本注释grid:对二维三维图形加格栅 绘制单根二维曲线 plot函数,基本调用格式为:

plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例如:在区间内,绘制曲线 y=2e-0.5xcos(4πx)程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)

plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 p=[22,60,88,95,56,23,9,10,14,81,56,23]; plot(p) 绘制多根二维曲线 1.plot函数的输入参数是矩阵形式

(1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。

MATLAB二维绘图技巧

MATLAB二维图形绘图入门技巧 一、plot函数 1.plot函数的基本应用格式:

2. 含多个输入参数的plot函数 plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。含多个输入参数的plot函

举例如下: >>X=linspace(5,100,20) % 产生从5到100围的20个等分数据 X = 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 ps:这和X=[5 : 5 : 100]的效果是一样的。 3.plot函数画矩阵 利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。如 >> A=pascal(5) A = 1111 1 1234 5 1 361015 14102035 15153570

4. plot函数生成的图像设置 Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所示:

w 白色 h 六角星 例 用不同的线型和颜色在同一坐标绘制曲线 及其包络线。 >> x=(0:pi/100:2*pi)'; %撇号表示对矩阵进行转置 >> y1=2*exp(-0.5*x)*[1,-1]; >> y2=2*exp(-0.5*x).*sin(2*pi*x); >> x1=(0:12)/2; >> y3=2*exp(-0.5*x1).*sin(2*pi*x1); >> plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp'); 01234567 -2 -1.5-1-0.500.511.52 在该plot 函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y ,第三组用红色五角星离散标出数据点。 几组例子: 指令 图例 Y=[1,3,6,5,9,0,2]; plot(Y);

MATLAB二维绘图

Matlab 二维绘图1 基本绘图函数 plot loglog semilogx semilogy plotyy 2 图形修饰 2.1 窗体的控制与分割 subplot 2.2 色彩与线型、数据点型

2.3 坐标系的修饰 grid on grid off grid minor grid hold on hold off hold all hold box on box off box v=axis axis auto axis tight axis fill axis ij axis xy axis off axis on 2.4 基本xy平面绘图命令 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100个点的x座标 y=sin(x); % 对应的y座标 plot(x,y);

●若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x)); ●若要改变颜色,在座标对後面加上相关字串即可: plot(x, sin(x), 'c', x, cos(x), 'g');

●若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关 字串即可: plot(x, sin(x), 'co', x, cos(x), 'g*'); ●图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范 围: axis([0, 6, -1.2, 1.2]);

Matlab笔记——二维绘图(直角坐标)007

007. 二维绘图(直角坐标) 前言: Matlab 具有强大的绘图功能,提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形。 此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字说明等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 —————————————————————— 二维绘图可以采用不同的坐标系,如直角坐标、极坐标、对数坐标等。 一.绘制二维曲线的基本函数 1. 基本绘图函数——plot() 用于绘制二维平面上的直角坐标图,要提供一组x 坐标和对应的y 坐标,可以绘制分别以x 和y 为横、纵坐标的二维曲线。 plot(x,y)——x,y 为长度相同的向量,存储x 坐标和y 坐标 例1 在[0,2]π区间,绘制一般曲线/22sin2x y e x π-=

x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y) 运行结果: 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。例2绘制参数方程曲线——星形线: x = a cos3t ; y = a sin3 t t = 0:0.01:2*pi; x = a.*(cos(t)).^3; y = a.*(sin(t)).^3; plot(x,y);

运行结果: 例3绘制参数方程曲线——摆线: x = a(t – sin t) ; y = a(1 –cos t) t = 0:0.01:2*pi; x = a.*(t - sin(t)); y = a.*(1 - cos(t)); plot(x,y); 运行结果:

教你如何用matlab绘图(全面)

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

MATLAB二维图形的绘制函数全解

常用的二维图形命令: plot:绘制二维图形loglog:用全对数坐标绘图semilogx:用半对数坐标(X)绘图semilogy:用半对数坐标(Y)绘图fill:绘制二维多边填充图形polar:绘极坐标图bar:画条形图stem:画离散序列数据图stairs:画阶梯图errorbar:画误差条形图hist:画直方图fplot:画函数图title:为图形加标题xlabel:在X轴下做文本标记ylabel:在Y轴下做文本标记zlabel:在Z轴下做文本标记text:文本注释grid:对二维三维图形加格栅 绘制单根二维曲线 plot函数,基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例如:在0≤x≤2?区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)

plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 p=[22,60,88,95,56,23,9,10,14,81,56,23]; plot(p) 绘制多根二维曲线 1.plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 2.含多个输入参数的plot函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn) (1) 当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组

MATLAB二维绘图技巧

MATLABX维图形绘图入门技巧、plot函数 l. plot函数的基本应用格式: plot(x,y) %x,y为长度相同的向量,存储x坐标和y坐标。绘图时数据需要对应排序好。 例51 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*si n(2*pi*x); >> plot(x,y) 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*si n( t).*si n(t); >> plot(x,y) 1.5 0.5 -0.5 -1.5

以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。 2. 含多个输入参数的plot函数 plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。含多个输入参数的数调用格式为: plot(x1 , y1, x2, y2,…,xn, yn) 如下列命令可以在同一坐标中画出3条曲线。 >> x=li nspace(0,2*pi,100); >> plot(x,si n(x),x,2*si n(x),x,3*si n(x)) 当输入参数有矩阵形式时,数等于矩阵的列数。 >> x=li nspace(0,2*pi,100); >> y1=si n( x); >> y2=2*s in (x); >> y3=3*s in (x); >> x=[x;x;x]'; >> y=[y1;y2;y3]'; >> plot(x,y,x,cos(x)) -30 2 1 -1 -2 1234567 1.5 1 0.5 -0.5 -1 -1.5 - 2 | 』j -4 -3 -2 -1 0 12 3 4 plot 函配对的x,y按对应的列元素为横坐标和纵坐标绘制曲线, 曲线条

Matlab绘制函数图像函数示例汇总

matlab中最基本的函数plot()的用法 标签:matlab plot 指令 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘 制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专门提供了这方面的参数选项(见表 5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。 - 2 - 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点< 小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑> 大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:') 则得图 5.1.2 图5.1.2 使用不同标记的plot 函数绘制的正弦曲线 5.1.2 图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 函数含义 grid on (/off) 给当前图形标记添加(取消)网络 标记横坐标 xlable(‘string’) ylabel(‘string’) 标记纵坐标 给图形添加标题 title(‘string’)

matlab二维图形的绘制

MATLAB技术论坛 www.matlab https://www.360docs.net/doc/778756188.html,账号zap2004 密码zap2004 matlab二维图形的绘制 2007年12月17日星期一 10:37 常用的二维图形命令: plot:绘制二维图形 loglog:用全对数坐标绘图 semilogx:用半对数坐标(X)绘图 semilogy:用半对数坐标(Y)绘图 fill:绘制二维多边填充图形 polar:绘极坐标图 bar:画条形图 stem:画离散序列数据图 stairs:画阶梯图 errorbar:画误差条形图 hist:画直方图 fplot:画函数图 title:为图形加标题 xlabel:在X轴下做文本标记 ylabel:在Y轴下做文本标记 zlabel:在Z轴下做文本标记 text:文本注释 grid:对二维三维图形加格栅 绘制单根二维曲线 plot函数,基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例如:在0≤x≤2pi区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y) plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 p=[22,60,88,95,56,23,9,10,14,81,56,23]; plot(p) 绘制多根二维曲线 1.plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。

matlab上机习题5-MATLAB7.0二维绘图

实验五MATLAB7.0 二维绘图 实验目的: ①掌握绘制数据曲线图的方法; ②掌握绘制其他坐标系下的数据曲线图和统计分析图的方法; ③掌握绘制隐函数图形的方法。 ④掌握图形修饰处理方法; 实验要求:给出程序和实验结果。 实验内容: 8. 编制MATLAB7.0程序,该程序绘制两条曲线,x的取值在[0,2pi],易pi/10为步长,一条是正弦曲线,一条是余弦曲线,线宽为6个象素,正弦曲线为绿色,余弦曲线为红色,线型分别为实线和虚线。给所绘的两条曲线增添图例,分别为“正弦曲线”和“余弦曲线”。 9. 在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。 10. 在0≤x≤2p区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。 11.重新绘制第一题所描述的曲线,将正弦曲线和余弦曲线分别画在两个子图中,子图竖向排列。

12、绘制r=sin(t)cos(t)的极坐标图; 13、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 实验程序与结果: 1 x=-2:0.1:2; y=sin(x).*cos(x); plot(x,y,'-r') -2 -1.5 -1 -0.5 0.5 1 1.5 2 -0.5-0.4-0.3-0.2-0.100.10.20.30.4 0.5 2 ezplot('x^2/9+y^2/16-1',[-5,5,-5,5]);

x y x 2/9+y 2/16-1 = 0 -5 -4 -3 -2 -1 01 2 3 4 5 -5-4-3-2-101234 5 3 x1=-2:0.1:2; x2=-2:0.1:2; y1=sin(x2).*x1; y2=cos(x1).*x2; plot3(x1,x2,y1,'d',x1,x2,y2,'d')

实验四 matlab二维图形绘制实验

软件学院 MATLAB程序设计课程实验报告201 ~201 学年第学期级专业班级:学号:姓名: 实验四二维图形绘制 一、实验目的 1.掌握通用绘图函数的使用 2.掌握简单图形绘制 3.熟悉可视化图形绘制的基本技巧 二、实验内容 1.通用绘图函数的使用 2. 二维图形绘制 三、实验环境 1.工具软件:MATLAB2012b 四、实验步骤 1. 通用绘图函数的使用 (1) plot函数-二维曲线图形绘制函数 >> x=-2*pi:pi/20:2*pi; >> y=sin(x); >> plot(x,y) (2)plot函数的操作2 >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) (3)plot函数的操作3—参数 >>x = -pi:pi/10:pi; >>y = tan(sin(x)) - sin(tan(x)); >> plot(x,y,'--ro') >>x = -pi:pi/20:pi; >>y = tan(sin(x)) - sin(tan(x)); >> plot(x,y,'-.gs') (4)plot函数的操作4—参数

x=(0:pi/50:2*pi)'; y1=-2*exp(-0.5*x); y2=2*exp(-0.5*x).*sin(2*pi*x); x1=0:0.5:7; y3=2*exp(-0.5*x1).*sin(2*pi*x1); y4=sin(x)*[1,-1]; plot(x,y1,'g:',x,y2,'b--',x1,y3,'rp',x,y4) 2. 二维图形绘制 (1)图形标注和坐标控制 在上面第四步图形的基础上继续做辅助操作 title('函数图形'); xlabel('Variable X'); ylabel('Variable Y'); text(5,1.1,' y4= sin(x)'); text(1,-1.2,' y1=2*exp(-0.5*x)'); text(0.4,1.5,' y2=2*exp(-0.5*x).*sin(2*pi*x)'); grid on; (2)图形窗口的分割 在一个图形窗口内绘制若干个独立的图形,这就需要对图形窗口进行分割 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); hold on; subplot(2,2,1); %选择2×2个区中的1号区 stairs(x,y,'m');title('sin(x)-1');axis ([0,2*pi,-1,1]); subplot(2,1,2); %选择2×1个区中的2号区 stem(x,y,'g');title('sin(x)-2');axis ([0,2*pi,-1,1]); subplot(4,4,3); %选择4×4个区中的3号区 plot(x,y);title('sin(x)');axis ([0,2*pi,-1,1]); subplot(4,4,4); %选择4×4个区中的4号区 plot(x,z,'r');title('cos(x)');axis ([0,2*pi,-1,1]); subplot(4,4,7); %选择4×4个区中的7号区 plot(x,t,'c');title('tangent(x)');axis ([0,2*pi,-40,40]); subplot(4,4,8); %选择4×4个区中的8号区 plot(x,ct);title('cotangent(x)');axis ([0,2*pi,-40,40]); (3)条形图、填充图、阶梯图和杆图形式的曲线绘制 绘制函数y=2*exp(-0.5*x)的图形 (4)极坐标图 polar函数用来绘制极坐标图,绘制函数ρ=sin(2θ)cos(2θ)的图形 (5)函数自适应采样的绘图函数

相关文档
最新文档