matlab meshgrid函数_matlab入门(三)图像可视化

matlab图像可视化

基本要求

(1)掌握图形窗口的创建与控制,以及图形窗口的基本操作;(2)熟练掌握二维和三维绘图基本的命令、线型控制;(3)初步掌握用特殊的图形来表现特殊数据的性质,如面积图、直方 图、饼图等。(4)掌握坐标轴的控制和图形标注命令及其用法。

1. 二维平面图形与坐标系

  1. 几个基本的绘图命令

  2. 线性坐标曲线 plot 函数命令 plot 是 MATLAB 二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形。命令格式:

  3. plot(X,Y)plot(x1,y1,x2,y2,…):综合调用方式用命令 plot(x,y)绘制函数 y=cos(x)在一个周期内的图形。x=0:0.01:2*pi;y=cos(x);plot(x,y)
82b5345247493a02660325276864146a.png
  1. 在同一图形窗口中用命令 plot(x,y)绘出正弦余弦函数的图形。

  x=0:0.01:2*pi;  y=[sin(x);cos(x)];  plot(x,y)
7bf7f0238c18df297fbc452a9e05a03f.png
  1. plot 函数可以设置曲线的线段类型、定点标记和线段颜色。 调用格式:plot(x,y,s) ,s 为类型说明参数,是字符串。 s 字符串可以是三种类型的符号之一,也可以是线型与颜色和定点标记与颜色的组合;如果没有 s 参数,plot 将使用缺省设置(实线,前七种颜色顺序着色)绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用 hold on 命令在一个坐标系中增加新的图形对象。注意MATLAB会根据新图形的大小,重新改变坐标系的比例。

用不同的线型和标注来绘制两条曲线。

9e1a0d3b3ea13fb41804df5e4f5ecab0.png
  • 图形窗口的分割 有时需要在一个图形窗口中显示几幅图,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用 hold 命令不能实现同时显示几个不同坐标尺寸下的图形,用 figure 命令再创窗口又很难同时比较由不同的数据绘得的图像。实现在同一个窗口中同时显示多个图像的命令subplot。使用格式为:

  • subplot(m,n,i)

其含义为 :把图形窗口分割为 m 行 n 列子窗口,然后选定第 i 个窗口为当前窗口。subplot 命令不仅用于二维图形,对三维图形一样适用。其本质是将 figure 窗口分为几个区域,再在每个区域内分别绘图。

  • %用 subplot 函数把两种不同的图形综合在一个图形窗口中。subplot(2,2,1)t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)grid onsubplot(2,2,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,2,3)x=1:0.01:5;y=exp(x);plot(x,y,x,y,’semilogx’,’plot’)subplot(2,2,4)x=1:0.1:10;y=sqrt(x);plot(x,y,’:rd’)
f13a9a97f6851bd977679fbe21835866.png
  1. 坐标系的调整 实现坐标系的调整的命令是 axis 函数。调用格式为:** axis([xmin,xmax,ymin,ymax,zmin,zmax])** 坐标的最小值( xmin,ymin,zmin)必须小于相应的最大值( xmax,ymax,zmax),否则会出错。自动坐标系与用 axis 函数调整后的坐标系的比较。

  2. subplot(2,1,1)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,1,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)axis([0,max(t),min(y),max(y)])
1510a20fc6c853cdce4b7c1f5bb13d39.png

2. 三维绘图 ##

  • 三维曲线绘图命令 三维函数 plot3主要用来表现单参数的三维曲线,与二维绘图函数 plot 相比,只多了第三维数据。其调用格式为:

  • plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)

参数的含义如下:Xn、Yn、Zn:第一到三维数据,是尺寸相等的向量/矩阵;s、s1、s2:是字符串,用来设置线型、颜色、数据点标记。x、y、z 是向量时,plot3 命令的使用

t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(’绘制螺旋线’) %用命令 title 对图形主题进行标注xlabel(’sin(t)’)ylabel(’cos(t)’)zlabel(’t’)%命令 zlabel 用来指定 z 轴的数据名称grid on
aac5da75c4aaed0ef12e470f5dd462b2.png

x、y、z 都是矩阵时,plot3 命令的使用

[X,Y]=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)
0a3aaf51cf0b686e4080a193db2ed18a.png
  • 三维曲面绘图命令 为了绘制定义在平面区域 D =[x0,xm]×[y0,yn ]上的三维曲面z=f(x,y) ,首先将[x0,xm]在 x 方向分成 m 份,将[y0,yn]在 y 方向分成 n 份,由各划点分别作平行于坐标轴的直线,将区域 D 分成 m×n 个小矩形;对于每个小矩形,计算出网格点的函数值,决定出空间中四个顶点( xi,yi,f(xi,yi)),连接四个顶点得到一个空间的四边形片;所有四边形片连在一起构成函数 z=f(x,y)定义在区域 D 上的空间网格曲面。因此,三维曲面绘图命令可分为平面网格点的生成、在平面网格基础上绘制三维网格及对三维表面进行处理三个步骤。

  • 平面网格点的生成 函数命令meshgrid 用来生成 x-y 平面上的网格点矩阵。调用形式为:

  • [X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)

参数含义如下: x:是区间[x0,xm]上分划的向量;y:是区间[y0,yn]上分划的向量;X,Y:输出变量矩阵,矩阵 X 的行向量都是向量 x,矩阵 Y 的列向量都是向量 y。函数 meshgrid 将由两个向量决定的区域转换为对应的网格点矩阵。

  • 三维网格命令 mesh 利用函数mesh生成网格曲面。调用格式为:

  • mesh(X,Y,Z,C):X、Y、Z、C 是同维数的矩阵,X、Y、Z 对应空间上的网格点,网格线颜色由C决定;

  • mesh(X,Y,Z):相当于上面的 C=Z 的情况;

  • mesh(x,y,Z,C):x 和 y 是向量,Z 和 C 是同维数的矩阵,网格曲面的网格顶点是( x(j),y(i),Z(i,j)),网格线的颜色由矩阵 C 决定;

  • mesh(x,y,Z):相当于上面的 C=Z 的情况;

  • mesh(Z,C):等价于 mesh(x,y,Z,C),此时向量x=1:n,向量 y=1:m;

  • mesh(Z):相当于上面的 C=Z 的情况

  • mesh(...,’PropertyName’,PropertyValue,...):给函mesh设置曲面属性。

  • 三维表面命令 surf 函数 surf 可实现对网格曲面片进行着色,将网格曲面转化为实曲面。surf 命令的调用格式与 mesh 相同。利用三维网格表面命令 surf 绘制图形。

  • z=peaks; %绘制山峰的图像,将函数值赋予变量z

  • surf(z) %对山峰的图像进行着色处理

  • shading interp %函数 shading 改变着色方式

  • 柱面的表达cylinder cylinder命令中,柱面的轴线定义为 z 轴,只要给出母线的描述就可完成一个柱面。调用格式为:

  • [X,Y,Z] = cylinder(R,N);

  • [X,Y,Z] = cylinder(R):缺省值 N=20;

  • [X,Y,Z] = cylinder:缺省值 N=20,R=[1,1]。

R:是一描述柱面母线的向量;N:是旋转柱面上的分割线条数;[X,Y,Z] :是返回的x,y,z坐标向量。绘制一个柱面。

t=pi:0.01:3*pi;r=sin(t)+t;cylinder(r,30)shading interp
c886512822dccd980ff3af354f094b0a.png
  • 球面的表达sphere 调用格式为:

  • [X,Y,Z]=sphere(N):产生一个( N+1)×( N+1)的矩阵,然后用函数 surf 命令绘制一个单位的球面,N 为设置分割线的条数;

  • [X,Y,Z] = sphere:缺省 N = 20。

画一个球面。

[X,Y,Z]=sphere;surf(X,Y,Z)

90d16f28bf1af06f2e1ffee935fea036.png

  • 特殊图形绘制

为了将抽象的数据表达得更形象,除了绘制二维、三维图形外,还要用到直方图、面积图、饼图等特殊图形。

图像标注修饰

  • 图形标注

坐标轴和图形标题标注 ;标注坐标轴 x、y 和 z 的命令函数为 xlabel、ylabel 和 zlabel ,调用格式为:

xlabel(’text’)xlabel(’text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,...)H = xlabel(...) 返回坐标轴标注的句柄。

其中,’text’是要添加的标注文本。’Property’是文本的属性名,’PropertyValue’是属性值(所用字体、大小、标注角度等)。图形加标题的函数为 title,其调用格式与坐标轴标注类似。

  • 图例的标注 legend命令实现不同图例的说明。其调用格式为:

  • legend(string1,string2,string3, ...)

  • legend(string1,string2,string3,...,Pos)

按顺序把字符串添加到相应的曲线线型符号之后;Pos对图例的位置作出设置和调整:

0 = 自动把图例置于最佳位置( 和图中曲线重复最少);1 = 置于图形窗口的右上角( 缺省值);2 = 置于图形窗口的左上角;3 = 置于图形窗口的左下角;4 = 置于图形窗口的右下角;-1 = 置于图形窗口的右侧( 外部)。
  • 控制分格线 对二维和三维图形都适用。有三种用法:

  • grid on:打开分格线控制开关,以后绘制的图形都带有分格线;

  • grid off:关闭分格线控制开关,以后绘制的图形都不带分格线;

  • grid:用于实现分格线绘制切换。

  • 举例

绘制图形,并用函数 xlabel、title 和 legend 命令进行标注。

t=0:0.1:4*pi; y=sin(t); y1=cos(t);plot(t,y,':',t,y1,'r*')xlabel('x 轴 (0--4\pi)','fontsize',12,'fontweight','bold')ylabel('y 轴','fontsize',12,'fontweight','bold')title('绘制正弦波和余弦波 Pos=1','fontsize',10,'fontweight','bold','fontangle','italic')text(pi,0,'\leftarrowsin(\pi)=0')text(pi,-1,'\leftarrowcos(\pi)=-1')text(pi/2,0.9,['\uparrowsin(\pi/2)=',num2str(sin(pi/2))])text(0,-0.6,['绘图日期:',date])text(0,-0.8,['MATLAB 版本:',version])legend('正弦波','余弦波')figure(2)plot(t,y,':',t,y1,'r*')title('绘制正弦波和余弦波 Pos=0','fontsize',10,'fontweight','bold','fontangle','italic')legend('正弦波','余弦波',0)grid onfigure(3)plot(t,y,':',t,y1,'r*')title('绘制正弦波和余弦波 Pos=-1','fontsize',10,'fontweight','bold','fontangle','italic')
540e5da0224670332259d922c7ff5dd2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hashmap remove 没释放内存_java从零开始手写 redis(13)HashMap 源码原理详解

为什么学习 HashMap 源码?作为一名 java 开发,基本上最常用的数据结构就是 HashMap 和 List,jdk 的 HashMap 设计还是非常值得深入学习的。无论是在面试还是工作中,知道原理都对会我们有很大的帮助。本篇的内容较长,建…

南京高中计算机老师,南京市教育局召开中小学教师信息技术应用能力提升工程2.0市级专家组工作会议...

2021年3月2日上午,南京市中小学教师信息技术应用能力提升工程2.0市级专家组工作会议在雨花台区教师发展中心召开。市教育局副局长祁寿东出席会议并讲话,市教研室、教科所、电教馆、教师发展学院主要负责同志,市级专家团队成员及各区教师发展中…

python计算执行时间的函数_[python] 统计函数运行时间

第一种: import time def time_me(fn): #fn 是要修饰/修改 的函数 def _wrapper(*args, **kwargs): #这个 _wrapper(*args, **kwargs) 则代指fn, *args 代表一般变量参数, **kwargs代表 字典,哈希等参数 start time.perf_counter() fn(*args…

arthas 排查内存溢出_Java 应用线上问题排查思路、常用工具小结

前言本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。毕竟作者自己也是从手忙脚乱时走过来的。只不过这里先提示一下。在线上应急过程中要记住,只有一个…

flutter listview 滚动到指定位置_Flutter 布局原理及实战

1. Flutter UI架构Flutter将视图数据抽象成为三个部分,即Widget树、Element树和RenderObject树。Widget树:控件的配置信息,不涉及渲染,更新代价极低。RenderObject树:真正的UI渲染树,负责渲染UI&#xff0c…

雷神开机logo更改_国产外星人雷神再发新品 911MT逐影者RTX2060光追游戏本评测

随着NVIDIA发布了笔记本20系显卡之后,宣示着全民进入了“RTX光线追踪时代”,各种新款的游戏也纷纷宣布支持“光线追踪”技术来吸引更多的玩家,似乎现在游戏本上没有个“RTX”贴纸就已经不好意思跟别人打招呼了。说到2019年的RTX新品&#xff…

AJAX框架衣柜内部布局,​最合理的衣柜内部布局解析,3大细节不容小觑

时常有业主或者朋友问小轻,最合理的衣柜内部布局应该是怎样的,确实这对于非业内人士一般都是不太清楚的,即使有的朋友已经有了丰富的生活经验,甚至是业内人士也不一定对此完全了解。那么到底最合理的衣柜内部布局是怎样的呢&#…

python爬取数据保存为csv时生成编号_将爬取到到数据以CSV格式存储

CSV文件存储 CSV,全称为Comma-Separated Values,中文可以叫做逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成&…

博达3956交换机配置手册_网络设备维保浅谈之交换机维保

随着信息化的飞速发展,交换机作为信息流通的承载者,是应用最为广泛的网络设备之一,其作用不言而喻。因此,在日产使用中,要注意交换机这种核心的设备的维护与保养,以免引发故障。交换机运维需要注意哪些问题…

java cas原理_Java并发之原子变量及CAS算法-上篇

Java并发之原子变量及CAS算法-上篇编辑​概述本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中是怎么保证变量原子性的呢?。对应Java中的包是:java.util.concurrent.atomic包下。因为涉及到了CAS算法&#x…

node ajax validator,使用validator.js对字符串数据进行验证

validator.js是一个对字符串进行数据验证和过滤的工具库,同时支持Node端和浏览器端,github地址是https://github.com/chriso/validator.js主要API如下:验证APIcontains(str, seed)验证str中是否含有seedequals(str, comparison)验证是否相等i…

css span 右端对齐_CSS标准文档流

web页面的制作,是个“流”,像水流一样,必须从上往下,一点点的编织,不像画画,可以这个地方画一个,另一个地方画一个,随意而为。标准文档流的一些微观现象1. 空白折叠现象1)标签与标签…

composer升级_Composer 使用姿势与 Lumen 升级指南

Composer 使用姿势这里主要说说 composer.json 和 composer.lock 文件的作用。composer.jsoncomposer.json 文件包含了项目的依赖和其它的一些元数据,使用 JSON format 编写。当初次调用 composer install 时,Composer 会根据 composer.json 文件&#x…

服务器间传文件$d,基于OpenSSH+WinSCP完成Windows服务器之间的文件传输

背景经常会遇到在不同服务器之间传输文件,Linux和Linux之间用命令rsync, windows和linux之间普遍是有图形化界面的ftp软件,老黄平时用的比较多的是FileZilla。Windows和Windows之间的话,90%都是在一台机器复制,到另一台…

dbgrideh 为什么只一行_Mysql性能优化:为什么count(*)这么慢?

导读在开发中一定会用到统计一张表的行数,比如一个交易系统,老板会让你每天生成一个报表,这些统计信息少不了sql中的count函数。但是随着记录越来越多,查询的速度会越来越慢,为什么会这样呢?Mysql内部到底是…

jmeter 高并发测试报告_JMeter分布式测试

一、为什么要使用分布式测试按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。有时候为了尽量模拟业务场…

半圆阴影_六年级数学:怎么求阴影部分面积?正方形与半圆,割补法常考题

欢迎您来到方老师数学课堂,请点击上方蓝色字体,添加关注。所有的视频内容,全部免费,请大家放心关注,放心订阅。六年级数学:怎么求阴影部分面积?正方形与半圆,割补法常考题。大家先在…

c语言判断整数_用c++编写闰年的判断基础程序

其实c语言与c语言有太多共同的东西,学习过c语言再学习c语言就显得轻而易举。当然学过了c再去学习c语言也是有一些帮助的(但是个人不提倡先学习c在学c语言)。由于现在经常看见有关闰年的程序,风式各样,眼花缭乱,些许凌乱&#xff0…

cat日志 搜索_大日志,看我如何对付你

在服务器接口测试中,我们经常会和各种日志打交道。一旦测试时服务端出现了问题,而单凭服务端的日志又不能发现问题原因的时候,往往开发要向我们测试人员询问客户端这边的情况,希望看看我们能不能提供一些有用信息,如错…

加载gif动图_GIF生成神器——ScreenToGif

每次需要做一个动图展示时,总是感觉很头疼。截图吧,需要的图片太多;录视频吧,文件太大;做动图吧,太麻烦。今天推荐的这个软件或许能够解决大家这个困惑,今天推荐的是动图生成神器——ScreenToGi…