MATALB(三)绘图命令

绘图命令

(一)二维绘图命令

二维绘图的基本命令有plot,loglog,semilogx,semilogy和polar。它们的使用方法基本相同,其不同点是在不同的坐标中绘制图形。

plot命令使用线性坐标空间绘制图形;

loglog命令在两个对数坐标空间中绘制图形;

而semilogx(或semilogy)命令使用x轴(或y轴)为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;

polar使用极坐标空间绘制图形。

二维绘图命令plot为了适应各种绘图需要,提供了用于控制线色、数据点和线型的3个基本参数。它的使用格式如下:

plot(x, y, 'color_point_linestyle')

该命令是绘制y对应x的轨迹的命令。y与x均为向量,且具有相同的元素个数。用字符串'color_point_linestyle'完成对上面3个参数的设置。

线色(r-red,g-green, b-blue,w-white,k-balck,i-invisible,y-yellow)

数据点(.,o,x,+,*,S,H,D,V,^,>,<,p)

线型(-,-.,--,:)

都可以根据需要适当选择。

当plot(x, y)中的x和y均为mxn矩阵时,plot命令将绘制n条曲线。

如果多重曲线对应不同的向量绘制,可使用命令

plot(t1, x1, t2, x2, t3, x3)

其中:x1对应t1;x2对应t2;等等。在这种情况下,t1,t2和t3可以具有不同的元素个数,但要求x1、x2和x3必须分别与t1、t2和t3具有相同的元素个数。

也可以使用另外一种形式,将多张图在一张图上显示。

x = [0:0.5:7]
y1 = sin(x)
y2 = cos(x)
y3 = (1/2)*x-0.5
hold on
plot(x, y1)
plot(x, y2)
plot(x, y3)
hold off

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

subplot命令使得在一个屏幕上可以分开显示n个不同坐标系,且可分别在每一个坐标系中绘制曲线。其命令格式如下:

subplot(r,c,p)

该命令将屏幕分成r x c个子窗口,而p表示激活第p个子窗口。窗口的排号是从左到右,自上而下。

subplot(2, 3, 2)
subplot(2, 3, 3)
subplot(2, 3, 4)

在图形绘制完毕后,执行如下命令可以再在图中加入标题、标号、说明和分格线等。

这些命令有title,xlabel,ylabel,text,gtext等。它们的命令格式如下:

title('My Title')
xlabel('My X-axis Label')
ylabel('My Y-axis Label')
text(x, y,'Text for annotation')
gtext('Text for annotation')
grid

gtext命令是使用鼠标定位的文字注释命令。当输入命令后,可以在屏幕上得到一个光标,然后使用鼠标控制 它的位置。单击鼠标左键,即可确定文字设定的位置。

hold on是图形保持命令,可以把当前图形保持在屏幕上不变,同时在这个坐标系内绘制另一个图形。hold命令是一个交替转换命令,即执行一次,转变一个状态(相当于hold on,hold off)

y = x
subplot(2, 3, 2)
title('my data1')
xlabel('my data xlabel')
ylabel('my data ylabel')
text(x, y,'data')
gtext('data symbol')
grid


(二)显函数、符号函数或隐函数的绘图

fplot(fun,lims)绘制由字符串fun指定函数名的函数在x轴区间为lims=[xmin, xmax]的函数图。若lims=[xmin, xmax, ymin, ymax],则y轴也被限制。

例1:


function y = Afun1(x);
if x<1y = x + 1;
elsey = 1+ 1/x;
end

然后在命令窗口输入

>> fplot('Afun1', [-3, 3])

就可以画出函数f(x)的图形。


也可以使用匿名函数:

>> Afun1 = @(x) (x + 1)*(x < 1) + (1 + 1/x)*(x >= 1);
>> fplot(Afun1, [-3, 3])
>> ezplot(Afun1)%函数Afun1的图形,横轴的近似范围为[-2π,2π],也可以使用参数来代替默认的参数

例2

>> ezplot('x^2 + (y^2)/4 = 1')

(三)三维图形

在实际工程计算中,最常用的三维绘图是三维曲线图、三维网格图和三维曲面图3中基本类型。与此对应,Matlab也提供了一些三维基本绘图命令,如三维曲线命令plot3,三维网格图命令mesh和三维表面图命令surf。

1.三维曲线

plot3(x, y, z)通过描点连线画出曲线,这里x,y,z都是n维向量,分别表示该曲线上点集的横坐标、纵坐标、竖坐标。

例3

在区间[0, 10π]画出参数曲线x=sint,y=cost,z=t,并分别标注。

t = 0:pi/50:10*pi;
plot3(sin(t), cos(t), t)
xlabel('sin(t)'), ylabel('cos(t)'), zlabel('t')

2.网格图

命令mesh(x, y, z)画网格曲面,这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标、纵坐标、竖坐标,命令mesh(x, y, z)将该数据点在空间中描出,并连成网格。

例4

x = -3:0.1:3; y = -5:0.1:5;
[x, y] = meshgrid(x, y); %生成网格数据
z = (sin(x.*y) + eps)./(x.*y + eps);
mesh(x, y, z)

3.表面图

命令surf(x, y, z)画三维表面图,这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标、纵坐标、竖坐标。

例5

[x, y] = meshgrid([-3:0.2:3]); %生成网格数据
z = (sin(x.*y) + eps)./(x.*y + eps);
surf(x, y, z)

4.旋转曲面

例6

x = 0:10:600;
[X, Y, Z] = cylinder(30*exp(-x/400).*sin((x + 25*pi)/100) + 130);
surf(X, Y, Z)

例7

画出x^2 + (y-5)^2= 16绕x轴旋转一周所形成的旋转曲面。

解:因为这里的函数是隐函数,化成显函数后有两支,必须使用参数方程,旋转面的参数方程为

x = 4cosα,

y = (5 + 4sinα)cosβ,

z = (5 + 4sinα)sinβ.     式中:α,β∈[0, 2π]。

alpha = [0:0.1:2*pi]';
beta = 0:0.1:2*pi;
x = 4*cos(alpha)*ones(size(beta));
y = (5 + 4*sin(alpha))*cos(beta);
z = (5 + 4*sin(alpha))*sin(beta);
surf(x, y, z)

也可以使用匿名函数

x = @(alpha, beta) 4*cos(alpha);
y = @(alpha, beta) (5 + 4*sin(alpha)).*cos(beta);
z = @(alpha, beta) (5 + 4 *sin(alpha)).*sin(beta);
ezsurf(x, y, z)

5.其他二次曲面

Matlab中使用绘图命令ezmesh或ezsurf也很方便,只需要把曲面方程写成两个变量的显函数方程或参数方程即可。

例8

(1)旋转单叶双曲面  (x^2 + y^2)/9 - (z^2)/4 = 1;
x = @(s, t) 3 *sec(s).*cos(t);
y = @(s, t) 3*sec(s).*sin(t);
z = @( s, t) 2*tan(s);
ezmesh(x, y, z)

(2)旋转双叶双曲面   (x^2)/9 - (y^2 + z^2)/4 = 1;
x = @(s, t) 3 *sec(s);
y = @(s, t) 2*tan(s).*cos(t);
z = @( s, t) 2*tan(s).*sin(t);
ezmesh(x, y, z)

(3)抛物柱面  y^2 = x;
ezsurf(@(y, z) y.^2, 50)

(4)椭圆锥面  (x^2)/9 + (y^2)/4 = z^2;
z = @(s, t) tan(s);
x = @(s, t) 3*tan(s).*cos(t);
y = @( s, t) 2*tan(s).*sin(t);
ezsurf(x, y, z)

(5)椭球面  (x^2)/9 + (y^2)/4 + (z^2)/6 = 1;
ellipsoid(0, 0, 0, 3, 2, sqrt( 6))

(6)马鞍面  z = xy;
ezsurf(@(x, y) x.*y)

(7)椭圆柱面 (x^2)/9 + (y^2)/4 = 1;
x = @(s, t) 3*cos(s);
y = @( s, t) 2*sin(s);
z = @(s, t) t;
ezmesh(x, y, z)

(四)3 - D可视化图形

例9

[x, y, z, v] = flow;
isosurface(x, y, z, v);

例10

画出v = (x^2)*y*(z + 1)的示意图。

x = 1:20;
y = 1:10;
z = -10:10;
[x, y, z] = meshgrid(x, y, z);
v = x.^2.*y.*(z + 1);
isosurface(x, y, z, v)


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

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

相关文章

微软打压竞争对手:针对AWS、谷歌、阿里云等提高软件许可成本

来源&#xff1a;云头条使用在公共云上托管的专用服务器上运行的微软软件&#xff1f;那就准备好多付钱。微软改变了许可条款&#xff0c;将使微软软件对AWS、谷歌云和阿里云的一些客户来说变得更昂贵。微软现在声称&#xff1a;专用托管云服务的出现使传统外包和云服务之间的界…

python+OpenCV图像处理(四)图像的简单几何变换

图像的简单几何变换 先看一下关于图像几何变换的简介&#xff1a; 几何变换不改变图像的像素值&#xff0c;只是在图像平面上进行像素的重新安排。 适当的几何变换可以最大程度地消除由于成像角度、透视关系乃至镜头自身原因所造成的几何失真所产生的负面影响。有利于我们在后续…

谷歌AI自动重建果蝇大脑,离绘制人脑更进一步

来源&#xff1a;googleblog、biorxiv、venturebeat导语&#xff1a;将果蝇的大脑分割成成千上万个40纳米的超薄切片&#xff1f;不怕&#xff0c;谷歌新AI技术能够重建果蝇完整大脑。智东西8月6日消息&#xff0c;据外媒报道&#xff0c;谷歌刚刚公布了一项最新研究结果“用洪…

python+OpenCV图像处理(五)图像的阈值分割

图像的阈值处理一幅图像包括目标物体、背景还有噪声&#xff0c;要想从多值的数字图像中直接提取出目标物体&#xff0c;常用的方法就是设定一个阈值T&#xff0c;用T将图像的数据分成两部分&#xff1a;大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法&#xf…

为什么有些softmax公式需要减去输入中的最大值

我们都知道softmax公式如下&#xff1a; 但有些softmax公式是先将每个x_i减去x中的最大值再代入以上公式 原因是为了防止上溢和下溢 举个例子&#xff0c;x[100000,100001,100002],如果直接代入上式数值会非常大&#xff0c;当对每个x的值减去x中的最大值后得到[-2,-1,0]&…

兰德公司报告分析 “分布式作战”对美空军兵力运用的影响

来源&#xff1a;兰德公司网站/图片来自互联网导读7月17日&#xff0c;兰德公司发布《竞争环境下的分布式作战&#xff1a;对美国空军兵力运用的影响》的报告&#xff0c;研究了美空军竞争环境下“分布式作战”的能力需求&#xff0c;分析了如何调整美空军当前的“兵力运用模式…

MATLAB(四)在高等数学中的应用

MATLAB在高等数学中的应用 &#xff08;一&#xff09;求极限 matlab中求极限的命令为 limit(expr, x, a) limit(expr, a) limit(expr) limit(expr, x, a, left) limit(expr, x, a, right) 其中&#xff0c;limit(expr, x, a)表示求符号表达式expr关于符号变量x趋近于a时的…

华为手机到底用了多少美国芯?外媒拆解来了

来源&#xff1a;iFixit、IT之家从拆解结果来看&#xff0c;华为Mate 20 X (5G)手机除了使用了3颗美国的芯片产品&#xff08;美光内存、SkyworksWCDMA/LTE低端前端模块、Qorvo中高频段模块&#xff09;以及荷兰公司恩智浦的芯片产品&#xff0c;其余主要部件基本上都是由华为海…

MATLAB(五)在线性代数中的应用

MATLAB在线性代数中的应用 &#xff08;一&#xff09;向量组的线性相关性 求列向量组A的一个最大线性无关组&#xff0c;可用命令rref(A)将A化成行最简形&#xff0c;其中单位向量对应的列向量即为最大线性无关组所含向量&#xff0c;其他列向量的坐标即为其对应向量用最大线…

全球市值最大公司的巨变:20年,已是沧海桑田

来源&#xff1a; 资本实验室三十年河东&#xff0c;三十年河西。而商业的世界&#xff0c;变化来得更为迅猛、激烈。就比如当我们比较1999到2019年间的全球市值最大公司&#xff0c;并回看二十年时&#xff0c;惊觉已是沧海桑田。如果以更短的五年为一个观察周期&#xff0c;则…

python+OpenCV图像处理(六)图像平滑与滤波

图像平滑与滤波 运用它&#xff0c;首先就要了解它&#xff0c;什么是平滑滤波&#xff1f; 平滑滤波是低频增强的空间域滤波技术。它的目的有两类&#xff1a;一类是模糊&#xff1b;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行&#xff0c;就是求邻近像元点的…

语音助手再次敲响隐私保护警钟

来源&#xff1a; 中国科学报智能手机内置的语音助手已成为人们生活中的亲密伙伴&#xff0c;大家习惯于让它完成报时、查询天气等日常任务甚至与它聊天解闷。然而&#xff0c;近期多家科技公司被曝光以智能语音助手录制用户谈话&#xff0c;再通过人工对语音做标注和反馈&…

大数据深度解析NLP文本摘要技术:定义、应用与PyTorch实战

文章目录 大数据深度解析NLP文本摘要技术&#xff1a;定义、应用与PyTorch实战1. 概述1.1 什么是文本摘要&#xff1f;1.2 为什么需要文本摘要&#xff1f; 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 …

python+OpenCV图像处理(七)图像的形态学处理

图像的形态学处理 数学形态学&#xff08;Mathematical morphology&#xff09;是一门 建立在格论和拓扑学基础之上的图像分析学科&#xff0c;是数学形态学图像处理的基本理论。其基本的运算包括&#xff1a;腐蚀和膨胀、开运算和闭运算、骨架抽取、极限腐蚀、击中击不中变换、…

站立会议08

一、会议细节 时间   2014-4-27 21&#xff1a;10~21:40 地点   基教102 记录人   王岸城 二&#xff0c;会议记录 姓名今天你做了什么明天你要做什么今天遇到了什么问题王岸城记事本删除记事本修改无法使用数据库 苏月 实现登录和注册的连接 学习数据库 连接数据库信息…

【人工智能】机器人的未来发展:从工业自动化到知识自动化

来源&#xff1a;王飞跃博客【导读】智能时代的核心技术将是知识自动化&#xff0c;因此必须从一开始就加快、加强以软件形态为主的知识机器人的研发与应用&#xff0c;尽快形成软件和物理形态平行互动的新型机器人系统&#xff0c;并以此为突破口&#xff0c;引发下一代智能机…

python+OpenCV图像处理(八)边缘检测

边缘检测 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。边缘检测是特征提取中的一个研究领域。 图像边缘检测大幅度地减少了数据量&#xff0c;并且剔除了…

python+OpenCV图像处理(九)图像金字塔

图像金字塔 图像金字塔是图像多尺度表达的一种&#xff0c;是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩&#xff0c;一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低&#xff0c;且来源于同一张原始图的图像集合。其通…

3位物理学家获基础物理学特别突破奖

Peter van Nieuwenhuizen、Sergio Ferrara和Dan Freedman&#xff08;从左至右&#xff09;来源&#xff1a;中国科学报超引力理论是一个试图统一所有自然力的理论&#xff0c;在被提出40多年后&#xff0c;它是否能真实描述这个世界仍然悬而未决。尽管如此&#xff0c;该理论的…

python+OpenCV图像处理(十)霍夫变换简单图形检测

霍夫变换 霍夫变换&#xff08;Hough Transform&#xff09;是图像处理中从图像中识别几何形状的基本方法之一&#xff0c;应用很广泛&#xff0c;也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状&#xff08;如&#xff1a;直线、圆等&#xff09;。最基…