首页 > 其他分享 >Matlab二维绘图

Matlab二维绘图

时间:2023-05-21 23:03:20浏览次数:39  
标签:subplot plot y2 %% 二维 绘图 Matlab pi sin


%% 1.基本绘图指令plot()
%% 2.矩阵绘图
%% 3.绘制三条曲线
%% 4.绘制双纵坐标图
%% 5.极坐标绘图
%% 6.极坐标和直角坐标的相互转化
%% 7.对数坐标系绘图
%% 8.图形窗分割 subplot()
%% 9.坐标轴设置
%% 10.图形标识
%% 11.ezplot()简易绘图指令(用于隐含数绘图)
%% 12.ezploar()极坐标图形简易绘制
%% 13.直方图绘制
%% 14.扇形图绘制
%% 15.离散杆状图和离散阶梯图
%%


clf;%用于清除图形,一般在画图前使用


% 1.基本绘图指令plot()


x1=linspace(0,4,10);

 y1=sin(x1)+sin(8*x1);

 x2=linspace(0,4,100);

 y2=sin(x2)+sin(8*x2);

 subplot(1,2,1);%在同一个窗口中创建一行两列区域在第 1 个区域显示图形

 plot(x1,y1);%绘图指令,x1为横坐标,y1为纵坐标

 title('picture1');%图形名称

 subplot(1,2,2);%第 2 个区域显示图形

 plot(x2,y2,x2,y2,'r*');%前两个x2,y2用来显示曲线连接,后两个x2,y2用来显示*,如果没有前两个则直接为散点 * 

 title('picture2');




% 2.矩阵绘图


x=linspace(0,1,30)';%列向量

 k=linspace(0.2,0.8,7);%行向量

 y=exp(0.5*x)*k;%30*7的矩阵

 plot(y,x);%显示7根曲线




% 3.绘制三条曲线


x=linspace(0,6,20);

 y=x.^2.*sin(x);%每个元素独立进行标量运算,需要带上点(否则会因为维数不同而报错)

 figure(1);%新建 1 图形窗口 1

 plot(x,y);

 figure(2);%新建图像窗口(避免被刷新)

 y1=y+2;

 y2=y-2;

 plot(x,y,x,y1,'k-.*',x,y2,':x');%在一幅图中显示 3 个图像,依次类推 n




% 4.绘制双纵坐标图


x=linspace(0,8,100);

 y1=2*exp(-0.5*x).*sin(2*pi*x);

 y2=4.5*exp(-0.1*x).*sin(x);

 plotyy(x,y1,x,y2);%绘制双纵坐标图



% 5.极坐标绘图


th=linspace(0,2*pi,100);

 r=3*(1+cos(th));

 polar(th,r,'g-*');%极坐标指令,依次为θ、ρ、控制符



% 6.极坐标和直角坐标的相互转化

[th,r]=cart2pol(1,3);%直角坐标转换为极坐标

 [x,y]=pol2cart(pi/3,2);%极坐标转化为直角坐标




% 7.对数坐标系绘图


x=linspace(0,10,100);

 y=x.^3+x.^2-2*x+6;

 figure(1);

 semilogy(x,y);%半对数坐标(y)

 grid on;      %显示网格

 figure(2);

 semilogx(x,y);%半对数坐标(x)

 grid on;

 figure(3);

 loglog(x,y);%全对数坐标

 grid on;



% 8.图形窗分割 subplot()


subplot(2,3,1:2);%分区后将 1、2 区域合并

 t=linspace(0,10,200);

 y1=sin(2*pi*t);

 plot(t,y1);

 subplot(233);%与subplot(2,3,3)等价

 y2=sin(t);

 plot(t,y2);

 subplot('position',[0.2 0.05 0.65 0.45]);%左下角(0.2,0.05)、右上角(0.65,0.45)

 y3=y1.*y2;

 plot(t,y3,'g-',t,y2,':r',t,-y2,':r');



% 9.坐标轴设置

x=linspace(0,2*pi,30);

 y=sin(x).*cos(2*x);

 plot(x,y,'g');

 hold on;%在当前图形上继续画图

 plot(x,y+0.5);

 hold off;

 axis([0,2*pi,-1.5,1.5]);%设置坐标系统的最大值和最小值

 set(gca,'xtick',linspace(0,5,6),'ytick',[-1.5,0,0.2,1]);%设定坐标轴的刻度标识




% 10.图形标识


t=0:pi/100:2*pi;

 y1=2*sin(2*t);

 y2=3*sin(3*t);

 plot(t,y1,t,y2,'g-.');

 axis([0,pi,-4,4]);

 title('正弦曲线0\rightarrow\pi');%图形标题

 xlabel('时间');%图形横坐标

 ylabel('函数值');%图形纵坐标

 text(pi/4,2*sin(pi/2),'pi/4的函数值');%文本

 gtext('3sin(3t)的极小值');%鼠标确定文本位置

 legend('2sin(2t)','3sin(3t)','NorthEast')%输出图形图例,最后一个参数表示方位




% 11.ezplot()简易绘图指令(用于隐含数绘图)

subplot(2,2,1);

 ezplot('x^2-y+1');%f(x)=x^2-y+1,直角坐标形式,此处缺省为默认区间(x,y)∈[-2pi,2pi]

 subplot(222);

 ezplot('x^2-cos(y)+sin(x)',[-2,1,-15,15]);%此处没缺省,区间为x∈(-2,1),y∈(-15,15)

 subplot(223);

 ezplot('exp(t)*sin(t)','exp(t)*cos(t)');%x(t)=exp(t)*sin(t),y(t)=exp(t)*cos(t) 参数方程形式,此处缺省为默认区间t∈(0,2pi)

 subplot(224);

 ezplot('sin(t)','cos(2*t)',[-8,6]);%此处没缺省,区间为t∈(-8,6)




% 12.ezploar()极坐标图形简易绘制

ezpolar('abs(2*cos(2*(t-pi/8)))');%第一个参数为ρ,第二个参数缺省时为t∈(0,2pi)

 ezpolar('abs(2*cos(2*(t-pi/8)))',[0,4/3*pi]);%第二个参数没缺省,t∈(0,4/3pi)




% 13.直方图绘制


y=round(rand(5,3)*10);

 subplot(1,3,1);

 bar(y,'group');% bar 垂直分组

 title('垂直分组式');

 legend('first','second','third');

 axis([0,6,0,12]);

 xlabel('x');

 ylabel('y');

 subplot(132);

 bar(y,'stack');% bar 垂直积累

 title('垂直积累式');

 axis([0,6,0,25]);

 xlabel('x');

 ylabel('y');

 subplot(133);

 barh(y,0.5);% barh 水平显示

 title('水平分组式,宽度0.5');

 xlabel('x');

 ylabel('y');




% 14.扇形图绘制

data=[10 12 19 30 42];% 数据

 explode=[0 1 0 0 100];% 对应数据在扇形图中所占的部分是与总体否分开,分开的大小

 pie(data,explode);




% 15.离散杆状图和离散阶梯图


t=linspace(0,2*pi,20);

 y=cos(t).*exp(-0.2*t);

 stem(t,y,'filled');%离散杆状图 最后一个参数缺省时表示空心,filled表示实心

 title('离散信号的杆图和阶梯图');

 xlabel('t');

 ylabel('cos(t)*e^{-0.2t}');

 hold on;

 stairs(t,y,'g:');%离散阶梯图

 hold off;




标签:subplot,plot,y2,%%,二维,绘图,Matlab,pi,sin
From: https://blog.51cto.com/u_16063698/6320542

相关文章

  • Matlab符号计算(实例)
    %%1.数值常量转换为符号变量%%2.符号表达式的创建%%3.符号表达式中符号自变量的确定%%4.符号对象和数值对象的转换%%5.符号数值的精度控制%%6.合并同类项%%7.因式分解%%8.分子多项式和分母多项式的提取%%9.符号表达式的展开%%10.......
  • 【算法题】二维数组打印
    链接:https://www.nowcoder.com/questionTerminal/6fadc1dac83a443c9434f350a5803b51有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。(注:主对角线方向为从左上角指向右下角这一斜线的方向)给定一个二位数组arr及题目中的参数n,请返回结果数组。 数......
  • matlab默认工作路径的修改方法,永久的
    说起来也简单,就是到安装路径文件夹下C:\ProgramFiles\R2011a\toolbox\local找文件mathrc.m文件,在最后一行添加cd'你想要的默认路径下文件夹',andifyoufinishthisstep,thenyoumakeit.......
  • MATLAB 能做什么?Matlab下载_Matlab中文版下载_Matlab使用教程
    MATLAB软件是一款非常强大的科学计算和数据分析工具,广泛应用于工程、物理、金融等领域。对于初次使用MATLAB软件的用户来说,想要运用它进行科学计算和数据分析可能并不是一件容易的事情。因此,本文将通过实际案例的方式,给大家介绍关于MATLAB软件功能使用技巧。首先,让我们来了解一下MA......
  • Matlab字符串相关操作-拼接、格式化
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • ★教程3:Simulink学习教程入门50例目录2.MATLAB/Simulink安装
    1.订阅本教程用户可以免费获得本博任意1个(包括所有免费专栏和付费专栏)博文对应代码;2.本Simulink课程的所有案例(部分理论知识点除外)均由博主编写而成,供有兴趣的朋友们自己订阅学习使用。未经本人允许,禁止任何形式的商业用途;3.本课程除了介绍常见的Simulink模块介绍之外,我们更侧......
  • matlab练习程序(二维图形的傅里叶级数)
    如何用傅里叶级数表示二维图形,首先要找到数学表达式,然后做傅里叶拟合即可。我最初想的是$R=f(theta)$这样的式子,$R$是极径,$theta$是极角。不过这样似乎处理不了$theta$一样的情况,比如图形有凹陷的情况。后来看了一些文章说可以把$x$和$y$分开表示,即$x=f(t)$,$y=f(t)$,这样可以......
  • Java生成二维码及条形码工具
    一:前言二维码是一种可以存储信息的矩形图案,它可以在移动设备上进行扫描和读取信息。Java语言中有许多库可以用于生成和解码二维码,其中com.google.zxing是一种常用的库。com.google.zxing是一个开源的Java库,它可以用于生成和解码各种类型的二维码和条形码。这个库的优点是易......
  • matlab如何通过命令查看主机相关信息
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 基于Graph-Cut算法的彩色图像深度信息提取matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要Graphcuts是一种十分有用和流行的能量优化算法,在图像处理领域普遍应用于前后背景分割(Imagesegmentation)、立体视觉(stereovision)、抠图(Imagematting)等,目前在医学图像领域应用较多。GraphCut(图形切割)应用于......