MATLAB数学建模之画图汇总

news2024/12/26 18:10:21

MATLAB是一种强大的数学软件,广泛应用于工程计算、控制设计、信号处理等领域。在数学建模中,MATLAB的绘图功能可以帮助我们直观地展示数据和模型结果。

1. 二维数据曲线图

1.1 绘制二维曲线的基本函数

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。 例如绘制一函数曲线:

t=0:0.1:2*pi; 
x=2 * t; 
y=t.*sin(t).*sin(t); 
plot(x, y);

plot函数可以包含若干组向量对,每一组可以绘制出一条曲线,含多个输入参数的plot函数调用格式为plot(x1,y1,x2,y2,…,xn,yn) 。

x=linspace(0,2*pi,100);
plot(x,sin(x),x,2*sin(x),x,3*sin(x))

图片

Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。可以用不同的线型和颜色在同一坐标内绘制曲线及其包络线:

x=(0:pi/100:2*pi)';
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');

图片

在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。

设置正弦曲线的线宽为 3,设置上三角形进行数据点的标记,并设置标记 点边缘为黑色,设置标记点填充颜色为红色,设置标记点的尺寸为 10,则 MATLAB 代码 如下:

% 横坐标轴 
x = linspace(0, 2*pi, 50); 
% 生成数据点,纵坐标轴 
y = 2 * sin(pi * x); 
% 绘图 
figure 
% 设置线的宽带为3 
plot(x, y, 'k--^', 'LineWidth', 3, ...   
  'MarkerEdgeColor', 'k', ... %设置标记点的边缘颜色为黑色   
  'MarkerFaceColor', 'r', ... %设置标记点的填充颜色为红色   
  'MarkerSize', 10)  %设置标记点的尺寸为10 

图片

利用五角星标记例两曲线的交叉点:

% 横坐标轴 
x = linspace(0, 2*pi, 1000); 
% 生成数据点,纵坐标轴 
y1 = 0.2 * exp(-0.5 * x).* cos(4 * pi * x); 
y2 = 2 * exp(-0.5 * x) .* cos(pi * x); 
% 查找y1与y2相等点(近似相等)的下标 
k = find( abs(y1-y2) < 1e-2 ); 
%取y1与y2相等点的x坐标 
x1 = x(k); 
% 求y1与y2值相等点的y坐标 
y3 = 0.2 * exp(-0.5 * x1) .* cos(4 * pi * x1); 
% 绘图 
figure 
plot(x, y1, 'r-.', x, y2, 'k:', x1, y3, 'bp','LineWidth',2); 

图片

在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为plotyy(x1,y1,x2,y2) ,其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。

x=0:pi/100:2*pi; 
% 生成曲线 
y1=0.2*exp(-0.5*x).*cos(4*pi*x); 
y2=2*exp(-0.5*x).*cos(pi*x); 
% 绘图 
figure 
plotyy(x,y1,x,y2); 
plot(x, y1, 'k-', x, y2, 'k-', 'LineWidth', 3) 

图片

1.2 绘制图形的辅助操作

title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称,text函数是在坐标点(x,y)处添加图形说明,legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。

除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。绘制正弦和余弦曲线,设置图形的标题、x 轴和 y 轴的标注,设置曲线标准。

% 横轴 
x=0:pi/50:2*pi; 
% 曲线数据 
y1=sin(x); 
y2=cos(x); 
% 绘图 
figure 
plot(x, y1, 'k-', x, y2, 'k-.') 
% 文本标注 
text(pi, 0.05, '\leftarrow sin(\alpha)') 
text(pi/4-0.05, 0.05, 'cos(\alpha)\rightarrow') 
% 标题标注 
title('sin(\alpha) and cos(\alpha)') 
% 坐标轴标注 
xlabel('\alpha') 
ylabel('sin(\alpha) and cos(\alpha)')

图片

使用axis函数进行坐标控制,如果给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出全部参数,则绘制出三维图形。 

% x轴 
x = 0:1/3000:1; 
% 生成误差曲线 
y = cos(tan(pi*x)); 
% 绘图 
figure 
% 分裂窗口为2*1个子窗口 
subplot(2,1,1) 
plot(x,y) 
title('\itcos(tan(\pix))') 
% 坐标轴调整 
subplot(2,1,2) 
plot(x,y) 
axis([0.4 0.6 -1 1]); 
title('复杂函数的局部透视')

图片

1.3 绘制二维图形的其他函数

在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,这些函数中选项的定义和plot函数完全一样,所不同的是坐标轴的选取。

% x轴 
x=0:0.5:5; 
% y轴 
y = exp(x); 
% 绘图 
figure 
% 笛卡尔坐标系 
subplot(4, 1, 1) 
plot(x, y, 'r-.') 
title('笛卡尔坐标系') 
% 半对数坐标系 
subplot(4, 1, 2) 
semilogx(x, y, 'g:') 
title('x轴为对数坐标系') 
subplot(4, 1, 3) 
semilogy(x, y, 'b-') 
title('y轴为对数坐标系') 
% 对数坐标系 
subplot(4, 1, 4) 
loglog(x, y, 'k:','LineWidth',4) 
title('对数坐标系')

图片

饼图、条形图和排列图(箱线图)也是很常用的数据可视化工具,它们各自适用于不同的数据展示场景。 

2. 三维图形绘制

2.1 绘制三维曲线

plot3()函数将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。其调用格式为 plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…),其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。

t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');grid;

图片

进行三维图形绘制时,常常需要首先创建三维网格,也就是先创建平面图的坐标系。在 MATLAB 中,常用meshgrid()函数生成网格数据。

由于网格线是不透明的,绘制的三维网格图有时只能显示前面的图形部分,而后面的部分可能被网格线遮住没有显示,MATLAB中提供了命令 hidden 用于观察图形后面隐藏的网格。

% 数据准备 
t=0:pi/10:pi; 
x=sin(t); 
y=cos(t); 
[X,Y]=meshgrid(x,y); 
z =X + Y;  
% 绘图 
figure 
mesh (z,'FaceColor','W','EdgeColor','K')
grid 
title('三维网格图'); 

图片

2.2 三维表面图的绘制

三维表面图也可以用来表示三维空间内数据的变化规律,与之前讲述的三维网络图的不同之处在于对网格的区域填充了不同的色彩,在 MATLAB 中绘制三维表面图的函数为surf()函数。

% 数据准备 
xi=-10:0.5:10; 
yi=-10:0.5:10; 
[x,y]=meshgrid(xi,yi); 
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); 
% 绘图 
surf(x,y,z) 

图片

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

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

相关文章

李飞飞首个“空间智能”模型发布:一张图,生成一个3D世界 | LeetTalk Daily

“LeetTalk Daily”&#xff0c;每日科技前沿&#xff0c;由LeetTools AI精心筛选&#xff0c;为您带来最新鲜、最具洞察力的科技新闻。 在人工智能技术迅速发展的背景下&#xff0c;李飞飞创立的世界实验室于近期发布了首个“空间智能”模型&#xff0c;这一创新成果引发了3D生…

力扣--543.二叉树的直径

题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 代码 /** Definition for a binary tree node.public…

你是如何找bug的?bug分析的正确打开方式

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Bug严重级别(Severity&#xff0c;Bug级别)&#xff1a;是指因缺陷引起的故障对软件产品的影响程度&#xff0c;由测试人员指定。 A-Crash&#xff1a;造成系统或…

QT获取tableview选中的行和列的值

查询数据库数据放入tableview&#xff08;tableView_database&#xff09;后 QSqlQueryModel* sql_model new QSqlQueryModel(this);sql_model->setQuery("select * from dxxxb_move_lot_tab");sql_model->setHeaderData(0, Qt::Horizontal, tr("id&quo…

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…

python调用GPT-4o实时音频 Azure OpenAI GPT-4o Audio and /realtime

发现这块网上信息很少&#xff0c;记录一下 微软azure入口 https://learn.microsoft.com/zh-cn/azure/ai-services/openai/realtime-audio-quickstart?pivotsprogramming-language-ai-studio sdk文档 https://github.com/azure-samples/aoai-realtime-audio-sdk?tabread…

tomcat+jdbc报错怎么办?

1. 虽然mysql8.0以上的不用手动添加driver类&#xff0c;但是一旦加上driver类&#xff0c;就要手动添加了 不然会报找不到driver类的错误 2. java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:xXX?serverTimezoneU…

C#调用c++创建的动态链接库dll文件

在C#中调用外部DLL文件是一种常见的编程实践&#xff0c;它具有以下几个重要意义&#xff1a;1.代码重用&#xff1b;2.模块化&#xff1b;3.性能优化&#xff1b;4.安全性&#xff1b;5.跨平台兼容性&#xff1b;6.方便更新和维护&#xff1b;7.利用特定技术或框架&#xff1b…

【Notepad++】---设置背景为护眼色(豆沙绿)最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【Notepad】---设置背景为护眼色&#xf…

相干光学信息处理

一、光学图像相减 光学图像相减&#xff1a;一般用于检测比较两幅图像之间的差异。 实现图像相减的方法很多&#xff0c;仅介绍两种&#xff1a; (1)空域光栅编码频域解码; (2)频域光栅滤波。 1.1 空域光栅编码频域解码相减方法 分两步实现&#xff1a; 第一步&#xff1a…

鸿蒙面试题 -生命周期的执行顺序

在开始之前&#xff0c;我们先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用&#xff0c;可以调用组件的生命周期。 页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成…

【机器学习】机器学习的基本分类-监督学习-决策树-ID3 算法

ID3&#xff08;Iterative Dichotomiser 3&#xff09;是决策树的一种构造算法&#xff0c;由 Ross Quinlan 在 1986 年提出。它主要用于分类问题&#xff0c;通过信息增益选择特征来构建决策树。ID3 假设数据是离散型特征&#xff0c;且不支持连续型数据。 1. 核心思想 划分标…

Spring Boot 3.0 + MySQL 8.0 + kkFileView 实现完整文件服务

Spring Boot 3.0 MySQL 8.0 kkFileView 实现完整文件服务 背景&#xff1a;比较常见的需求&#xff0c;做成公共的服务&#xff0c;后期维护比较简单&#xff0c;可扩展多个存储介质&#xff0c;上传逻辑简单&#xff0c;上传后提供一个文件id&#xff0c;后期可直接通过此i…

泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作

声明&#xff1a; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

Qt 小项目 学生管理信息系统

主要是对数据库的增删查改的操作 登录/注册界面&#xff1a; 主页面&#xff1a; 添加信息&#xff1a; 删除信息&#xff1a; 删除第一行&#xff08;支持多行删除&#xff09; 需求分析&#xff1a; 用QT实现一个学生管理信息系统&#xff0c;数据库为MySQL 要求&#xf…

IDEA的service窗口中启动类是灰色且容易消失

大家在学习Spring Cloud的过程中,随着项目的深入,会分出很多个微服务,当我们的服务数量大于等于三个的时候,IDEA会给我们的服务整理起来,类似于这样 但是当我们的微服务数量达到5个以上的时候,再启动服务的时候,服务的启动类就会变成灰色,而且还容易丢失 解决方法 我们按住…

【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示

trino运行拥有自己的UI来监控资源使用率&#xff0c;但领导需要更好的展示做些图表出来放到PPT里面&#xff0c;选择了用prometheus收集数据和grafana来展示图表。本文就trino的数据采集和展示做记录&#xff0c;对于prometheus和grafana的安装不做介绍。 首先要采集trino的数据…

【NIPS2024】Unique3D:从单张图像高效生成高质量的3D网格

背景&#xff08;现有方法的不足&#xff09;&#xff1a; 基于Score Distillation Sampling &#xff08;SDS&#xff09;的方法&#xff1a;从大型二维扩散模型中提取3D知识&#xff0c;生成多样化的3D结果&#xff0c;但存在每个案例长时间优化问题/不一致问题。 目前通过微…

雨晨 26100.2454 Windows 11 24H2 专业工作站 极简纯净版

文件: 雨晨 26100.2454 Windows 11 24H2 专业工作站极简 install.esd 大小: 1947043502 字节 修改时间: 2024年12月6日, 星期五, 16:38:37 MD5: 339B7FDCA0130D432A0E98957738A9DD SHA1: 2978AE0CEAF02E52EC4135200D4BDBC861E07BE8 CRC32: 8C329C89 简述&#xff1a; 由YCDIS…

IDE如何安装插件实现Go to Definition

项目背景 框架&#xff1a;Cucumber Cypress 语言&#xff1a;Javascript IDE&#xff1a;vscode 需求 项目根目录cypress-automation的cypress/integration是测试用例的存放路径&#xff0c;按照不同模块不同功能创建了很多子目录&#xff0c;cucumber测试用例.feature文…