matlab如何绘制两幅图(如何用Matlab画出你想要的图)
matlab如何绘制两幅图(如何用Matlab画出你想要的图)
2024-06-26 06:57:27  作者:盛夏的尽头  网址:https://m.xinb2b.cn/sport/jil421625.html

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,我们可以通过在在Matlab右上角的搜索界面输入"Types of MATLAB Plots",然后打开"Types of MATLAB Plots"文档,我们就能看到Matlab能够绘制如下图所示的各种图形。

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(1)

Matlab不仅可以绘制二维的图像还可以绘制三维图像,甚至是动画,让你的学习、科研和工作中的画图简单又好看。下面三种不同类型的图像就是通过Matlab绘制的。

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(2)

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(3)

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(4)

在确定要绘制什么图形的时候,最初不用太过于考虑图像中的细节问题,选好我们所需的绘图函数即可。确定绘图函数后,通过给定或者我们自己导入的基本数据和参数就能得到我们想要的图形。当然,Matlab是可以直接对图形的每个元素,如坐标轴、曲线(颜色、粗细)、文字等一系列的对象进行单独操作。在设定好图像的呈现方式(通过绘图函数实现)并不断调节好图形中的各个元素后,你就可以将属于你自己的绘图代码保存下来,以后只用导入数据就能够一键画好你想要的图像。在这里我以那个三维曲面动画图为例来讲解如何在Matlab中画图的。

三维曲面动图分解看来肯定是由一张一张的三维曲面图连续变化得到的,那么我们首先肯定是来制作单独的三维曲面图。通过到上面提到的Matlab图形类型文档中查看,我们可以在“表面和网格画图”(Surface and Mesh Plot)一栏中找到surf 还有mesh等函数来绘制三维曲面。在这里我们选取surf来进行绘制,那么surf这个函数是如何使用的呢?点开surf的文档介绍,里面有详细的surf的使用说明。通过Matlab自带的使用说明、示例或者在网上查看别人使用的方法。我们基本可以明确无论是使用surf(Z)还是surf(X,Y,Z)来进行三维平面画图,Z都是最关键的。假如Z是一个m行✖n列的矩阵,那么surf(Z)相当于是逐个把矩阵Z中的每个元素投射到三维空间中形成一个点,点的高度(z,同样也代表了颜色)就是元素具体的数值,x和y坐标则对应了元素在矩阵中索引位置。最然后把相邻的点用线连接起来,来组成一个一个细小的三维曲面,并最终绘制成看上去平滑的三维曲面。

比如,我们用想要画出f(x,y)=x^2 y^2的三维图,其中x和y的范围在-5到5之间。我们可以通过以下的代码来实现:

x=-5:0.25:5;%设定x的取值范围和精度

y=x;%y的取值范围和精度和x相同

[X,Y]=meshgrid(x,y);%返回和x与y相关的网格矩阵

Z=X.^2 Y.^2;%生成f(x,y)=x^2 y^2在区间范围内的所有值

surf(X,Y,Z);%绘制三维曲面图

最终我们得到了下面这张图

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(5)

那么最后我们在这个图的基础上来绘制一个三维曲面动图吧!动画效果是曲面向下变平,继续往下弯曲到和往上弯曲时一样的程度,随后返回到初始状态。这个过程中实际上变动的是高度,也就是Z值,那么我们依次取N个不同的Z值并进行画图,然后把每一个图像连接在一起就行了。在Matlab中可以同生成gif格式的动图来实现以上功能。具体代码和效果图如下:

x=-5:0.25:5;%设定x的取值范围和精度

y=x;%y的取值范围和精度和x相同

[X,Y]=meshgrid(x,y);%返回和x与y相关的网格矩阵

Z=X.^2 Y.^2;%生成f(x,y)=x^2 y^2在区间范围内的所有值

fact=2*sin(0:0.1*pi:2*pi);%设定Z的变化因子,这里用了周期函数sin,并取了一整个周期的值

for k=1:length(fact)

surf(X,Y,fact(k)*Z);

axis([-5 5 -5 5 -100 100])%设定坐标轴范围

caxis([-120 120])%设定坐标取色范围

axis off%隐藏坐标轴

title('三维动画');%设定图像名称

frame=getframe(gcf); %获取当前画面

im=frame2im(frame);%制作gif文件,图像必须是index索引图像

[I,map]=rgb2ind(im,256);%转成gif图片,只能用256色

if k==1

% 第一张直接保存到目录

imwrite(I,map,strcat('C:\toutiao\20180718\','3D-Animation2','.gif'),'gif','Loopcount',inf,'DelayTime',0.1);

else% 剩下的每张图续接上一个图,每张图间隔为0.1秒

imwrite(I,map,strcat('C:\toutiao\20180718\','3D-Animation2','.gif'),'gif','WriteMode','Append','DelayTime',0.1);

end

end

matlab如何绘制两幅图(如何用Matlab画出你想要的图)(6)

以上就是今天介绍的Matlab的画图功能,虽然只涉及到了一个画图函数,但具体如何去使用函数文中已做过介绍(代码里也写了备注),其他所有的函数也是如此。希望本文对你有所帮助,如果有什么想学的东西可以在下面留言,只要我知道的话会尽量回答。

  • 肝脏有胆汁吗(肝脏会分泌胆汁吗)
  • 2024-06-26肝脏会分泌胆汁吗胆汁的产生时由干细胞分泌而成的,胆汁在身体中是不断进行分泌的,胆汁对于我们来说可以促进脂肪的消化分解胆汁的生成量一般会和身体的蛋白质摄入量会有关系,正常人的身体每日分泌的胆汁会去到一升左右胆汁:由肝细。
  • 喋血孤岛剧情(该剧讲述了什么)
  • 2024-06-26该剧讲述了什么1943年春,一支中美合作特工训练营毕业的女子特工队奔赴上海,与日本梅机关和汪伪76号汉奸特务展开一场铁血特工战五名性格迥异的绝色女子,为民族自由纵横上海滩,喋血黄浦江女子特工“幽灵行动队”队长红叶,。
  • 明星设计鞋(盘点3大为男性设计)
  • 2024-06-26盘点3大为男性设计笔者:杰鲁鲁在历史发展过程中,不同的事物被赋予不同的“身份”,在正常人的观念里,要是女性用着男性的东西,肯定会被周围人以异样的眼光看待,而如果是男性用着女性的东西,那肯定会被当做是变态的本期内容给大家。
  • 奋斗激发人心励志短句(致自己努力奋斗的短句子)
  • 2024-06-26致自己努力奋斗的短句子即使生活有一千个理由让你哭,你也要找到一个理由让自己笑,这就是人生我们总以为,是生活欠我们一个“满意”,其实是我们欠生活一个“努力”一个懒字可以毁掉一切与其降低你的开支,不如去尝试增加你的收入这就是我。
  • 东汉末年汉献帝为什么要逃亡(汉和帝刘肇智斗外戚)
  • 2024-06-26汉和帝刘肇智斗外戚东汉是一个在历史上被严重低估的朝代,或许是曾经的西汉过于辉煌,以致显得东汉有些平庸东汉的开国君主刘秀是汉高祖刘邦的九世孙,在西汉末年,民不聊生之际,刘秀凭借自己的足智多谋建立了新的政权随后,东汉开始了。
  • 王者荣耀目前版本杨戬出装(王者荣耀杨戬出装)
  • 2024-06-26王者荣耀杨戬出装杨戬在游戏中一般作为边路英雄出场,是目前边路中最强力的英雄之一,不少喜欢边路的英雄都会使用他来上分,KPL赛场上杨戬也是一个拥有超高出场率的英雄杨戬装备推荐:六神装:红莲斗篷、抵抗之靴、反伤刺甲、冰痕。
  • 磨金石教育是干什么的 磨金石教育掌握光的特性
  • 2024-06-26磨金石教育是干什么的 磨金石教育掌握光的特性在经济科技发达的现在,人手一部智能手机加上数码相机的普及应用,无论男女老少都做到了随时、随地、随拍,真正进入一个全民摄影的时期但大多数摄影爱好者拍照全凭感觉和运气,对于光线的运用并不熟悉所以很多时候同。
  • 卤螃蟹怎么做放时间长(卤河蟹在家做美味又营养)
  • 2024-06-26卤河蟹在家做美味又营养海边长大的孩子怎能不爱“它”ByJj1213用料河蟹6只蒜六七瓣花椒适量(一手心)八角四个姜片十片葱一根青椒(辣)三个香菜四五根干红辣椒或小米椒干六七颗&小米椒两三个纯净水2片白酒(高度)1勺鸡粉一小。
  • 欧洲厕所史(法国女性露天小便池火了)
  • 2024-06-26法国女性露天小便池火了排队半小时,如厕1分钟,相信不少女同胞出门在外都遇到过这种窘境尤其在巴黎街头,找到一个公共厕所简直比登天还难为了解决女性在外如厕难题,法国设计师GinaPerier发明了一款名为Lapee的女。
  • 蝉联即食溏心蛋销量第一(蝉联即食溏心蛋销量第一)
  • 2024-06-26蝉联即食溏心蛋销量第一2022年618全民购物狂欢节于近期落下帷幕纵观今年整体情况并不乐观,市场增速放缓、传统电商几乎零增长甚至下滑但据天猫官方数据显示,美玉子溏心蛋仍然以超同品类产品第二名销量3倍、市占率超50%的成绩,。
  • 如何才能收到时空交集短信(今天收到时空交集)
  • 2024-06-26今天收到时空交集来源:昆明日报-掌上春城今天(3月29日)市民如收到昆明市疫情防控指挥部的提示短信被告知与新冠确诊病例有时空交集请在收到短信后主动向社区报告尽快在3天内完成2次核酸检测并做好14天自我健康监测期间不乘。