Matlab:二维绘图篇——不同坐标系下的绘图命令

devtools/2025/3/23 0:14:30/

目录

1.极坐标系下绘图:polar命令

实例——极坐标图形

实例——直角坐标与极坐标系图形

2.半对数坐标系下绘图:semilogx和semilogy

实例——半对数坐标系图形

3.双对数坐标系下绘图:loglog

实例——双对数坐标系绘图

4.双y轴坐标:plotyy

实例——双y轴坐标绘图


1.极坐标系下绘图:polar命令

         在Matlab中,polar命令用来绘制极坐标系下的函数图像。(通俗来说,极坐标系是一种确定平面上点位置的方式。它有一个固定的极点和一条极轴,用点到极点的距离(极径)以及从极轴逆时针转到该点的角度(极角)来表示点的位置。)

polar命令的调用格式
调用格式说明
polar(theta,rho)在极坐标中绘图,theta的元素代表弧度,rho代表极坐标失径
polar(theta,rho,s)在极坐标中绘图,参数s的内容与plot命令相似

实例——极坐标图形

在直角坐标系与极坐标系下画出此函数的图像:r=|sintcost|

>> t=0:0.1:4*pi
r=abs(sin(t).*cos(t));
polar(t,r)

         这段MATLAB代码的主要目的是在极坐标系中绘制特定函数的图像。首先,代码使用冒号运算符生成了一个从0到4π、步长为0.1的向量t,代表极角。其次,计算每个`t`对应的极径r,r是sin(t)与cos(t)乘积的绝对值,确保极径非负。最后,使用polar函数,以t为极角、r为极径绘制极坐标曲线。在这需要注意的是,在较新的MATLAB版本中,建议(可以通过调整步长和角度范围来改变图形的精度与显示范围)使用polarplot函数替代polar函数。

实例——直角坐标与极坐标系图形

在直角坐标系与极坐标系下画出此函数的图像:

>> t=linspace(0,24*pi,1000);
r=exp(sin(t))-2*sin(4.*t)+(cos(t./5)).^6;
subplot(2,1,1),plot(t,r)
subplot(2,1,2),polar(t,r)

(1)linspace 函数用于生成一个从 0 到 24*pi 的包含 1000 个等间距元素的向量 t,这个向量通常可以表示时间或者角度等连续变化的变量;

(2)生成的时间向量 t 计算对应的极径 r。这里的 r 是一个关于 t 的函数,通过指数函数 exp、正弦函数 sin 和余弦函数 cos 组合而成;

(3)subplot(2, 1, 1) 将绘图窗口划分为 2 行 1 列的子图布局,并选择第 1 个子图。plot(t, r) 在该子图中绘制 t 和 r 的关系图,即 r 随 t 变化的曲线;

(4)subplot(2, 1, 2) 选择第 2 个子图。polar(t, r) 在该子图中以极坐标的方式绘制图形,其中 t 表示极角,r 表示极径;

这个图在直角坐标系下的图像,用pol2cart命令,可以将相应的坐标数据点转化成直角坐标系下的数据点:

>> [x,y]=pol2cart(t,r);
figure
plot(x,y)

2.半对数坐标系下绘图:semilogx和semilogy

semilogx用来绘制x轴为半对数坐标的曲线;semilogy命令用来绘制y轴为半对数左边的曲线。

semilogx(semilogy)命令的调用格式
调用格式说明
semilogx(X)绘制以10为底对数刻度的x轴和线性刻度的y轴的半对数坐标曲线。若`X`是实矩阵,则按列绘制每列元素值相对其下标的曲线图;若为复矩阵,则等价于`semilogx(real(X),imag(X))`命令
semilogx(X1,Y1,...)对坐标对`(Xi,Yi)`(`i=1,2,...`),绘制所有的曲线。如果`(Xi,Yi)`是矩阵,则以`(Xi,Yi)`对应的行或列元素为横纵坐标绘制曲线
semilogx(X1,Y1,s1,...)对坐标对`(Xi,Yi)`(`i=1,2,...`),绘制所有的曲线,其中`si`是控制曲线线型、标记以及色彩的参数
semilogx( ...,'PropertyName',PropertyValue,...)对所有用`semilogx`命令生成的图形对象的属性进行设置
h = semilogx(...)返回`line`图形句柄向量,每条线对应一个句柄

实例——半对数坐标系图形

比较函数y=10的x幂次方在半对数坐标系与直角坐标系下的图像

>> close all
x=0:0.01:1;
y=10.^x;
subplot(1,2,1),semilogy(x,y)
subplot(1,2,2),plot(x,y)

         代码先执行close all关闭所有已打开的图形窗口,避免干扰。接着生成从 0 到 1、步长为 0.01 的向量x,并计算y = 10.^x。之后利用subplot将绘图窗口分为 1 行 2 列,在第一个子图中用semilogy函数绘制,其y轴为对数刻度,能更好呈现指数增长;在第二个子图中用plot函数以线性坐标绘制。通过这种方式,可清晰看到指数函数在不同坐标体系下的特点,便于对函数性质进行分析。

3.双对数坐标系下绘图:loglog

实例——双对数坐标系绘图

>> close all
x=0:0.01:1
y=exp(x)+exp(-x);
subplot(1,2,1),loglog(x,y)
subplot(1,2,2),plot(x,y)

4.双y轴坐标:plotyy

双y轴坐标在实际中常用来比较两个函数的图像。

pootyy命令的调用格式
调用格式说明
plotyy(x1,y1,x2,y2)用左边的y轴画出x1对应于y1的图,用右边的y轴画出x2对应于y2的图
`plotyy(x1,y1,x2,y2, 'function')使用字符串'function'指定的绘图函数产生每一个图形,'function'可以是plot、semilogx、semilogy、stem或任何满足h = function(x,y)的MATLAB函数
plotyy(x1,y1,x2,y2, 'function1', 'function2')使用function1(x1,y1)为左轴画出图形,用function2(x2,y2)为右轴画出图形

实例——双y轴坐标绘图

>> close all
x=linspace(-2*pi,2*pi,200);
y1=exp(-x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(2*pi*x);
plotyy(x,y1,x,y2,'plot')

          这段MATLAB代码中,首先,close all语句关闭所有已打开的图形窗口,防止干扰。接着,使用linspace函数生成从 - 2π到2π的200个等间距的点作为自变量x。然后,分别计算两个函数y1 = exp(-x).*cos(4*pi*x)和y2 = 2*exp(-0.5*x).*cos(2*pi*x)的值。最后,利用plotyy函数,以x为共同的横坐标,分别绘制`y1`和y2对应的曲线,并指定绘图方式为plot。这样可以在同一图形中清晰对比两个函数的变化趋势。


http://www.ppmy.cn/devtools/169279.html

相关文章

Android第四次面试(Java基础篇)

一、Java 中的 DCL 单例模式 单例模式是设计模式中最常用的模式之一,其核心目标是确保一个类在程序中仅有一个实例,并提供全局访问点。在 Java 中,实现单例模式需要兼顾线程安全和性能优化。DCL(Double-Checked Locking&#xff0…

UI自动化测试往往在功能测试之后进行的核心原因

一、流程效率:避免“过早优化浪费资源” 1. 功能未定型,频繁修改导致脚本维护成本高 实际场景: 某电商平台开发初期,前端页面按钮的ID因需求变动频繁更改。此时若投入UI自动化,需不断调整元素定位逻辑,甚…

MFC中CString类型是如何怎么转std::string的

文章目录 一、转换方法总结二、详细步骤1. Unicode 项目(CStringW → std::string)2. 多字节项目(CStringA → std::string) 三、注意事项四、总结更多信息(知识点存在重复,可跳过)方法 1:项目使用 Unicode…

Vue输入选择控件常用的校验格式

1.在lib目录下新建文件夹dic.js // 空白数据的占位符 const PLACEHOLDER -- // 时期格式 const FORMAT_DATETIME YYYY-MM-DD HH:mm:ss const FORMAT_DATE YYYY-MM-DD const FORMAT_MONTH YYYY-MM const FORMAT_TIME HH:mm:ss const FORMAT_HHMM HH:mm const FORMAT_DATE…

Web爬虫利器FireCrawl:全方位助力AI训练与高效数据抓取。本地部署方式

开源地址:https://github.com/mendableai/firecrawl 01、FireCrawl 项目简介 Firecrawl 是一款开源、优秀、尖端的 AI 爬虫工具,专门从事 Web 数据提取,并将其转换为 Markdown 格式或者其他结构化数据。 Firecrawl 还特别上线了一个新的功…

Python - 爬虫-网页抓取数据-工具wget

Python - 爬虫之curl 一、wget "wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。 wget 是在 Linux 下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 Windows 在内的各个平台上。 wget 是一个下载文件的工具&…

计算机网络(第三章)

数据链路层 一、数据链路层的背景 知识背景梳理: 网络中的主机、路由器、交换机都必须实现数据链路层; 数据链路层使用的信道: 点对点信道:这种信道使用一对一的点对点通信方式。广播信道:使用一对多的广播通信方式&…

在树莓派上如何使用 Vosk检测唤醒词

一、在树莓派上使用 Vosk 的步骤 Vosk 是一个轻量级的开源语音识别工具包,能在树莓派上高效运行。下面为你详细介绍在树莓派上使用 Vosk 的步骤: 1. 安装必要的依赖 首先,你需要更新系统软件包列表,并且安装一些必要的依赖库。…