MATLAB常用绘图函数的使用

文章目录

  • 绘制一图一线
  • 绘制一图多线
    • 用法一:plot
    • 用法二:hold on
  • 绘制一图多图
  • 其他形式的坐标图
  • 分段函数绘制
    • 方法一:分段写函数的定义域值域
    • 方法二:判断定义域
    • 方法三:if else 判断
  • 横纵坐标范围设置
  • 标题、轴标签、图例、字体大小及轴线位置设置
  • 补充
    • 颜色与线型方案
    • 点乘和乘的区别


本文对MATLAB中绘制二维图的常用函数的使用进行例举并给出图示。对函数图的绘制,颜色与线型,坐标范围设置,标题、标签、图例、字体大小等设置做出说明。

绘制一图一线

用法:

plot(x,y); %其中x,y为长度相同的向量,存储x坐标和y坐标

举例:

x = 0:2*pi/100:2*pi;%x坐标格式(x = 起始点:间隔:结束点)
y = sin(x);
plot(x,y);

如图:
在这里插入图片描述

绘制一图多线

用法一:plot

plot(x,y1,'选项1',x,y2,'选项2',x,y3,'选项三');%选项格式:颜色+线型,如b*、r-、k-o

举例:

x = 0:pi/10:2*pi; %x坐标
y1 = sin(x);      %y坐标1
y2 = cos(x-0.25); %y坐标1
y3 = sin(x-0.5);  %y坐标1figure;            %新开一个画图窗口
plot(x,y1,'g',x,y2,'b--o',x,y3,'k*');

如图:
在这里插入图片描述

用法二:hold on

hold on;%保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图

举例:

x = linspace(-pi,pi,100); %格式linspace(起始点,结束点,元素个数)
y1 = sin(x);
plot(x,y1);hold on;
y2 = cos(x);
plot(x,y2);

如图:
在这里插入图片描述

绘制一图多图

用法:

subplot(m,n,p); %将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。

举例:

%创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,并在图窗的下半部分创建第三个子图。
subplot(2,2,1); %第一个图
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);subplot(2,2,2); %第二个图
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');subplot(2,2,[3,4]); %第三四个图
plot(x,y_cos,'b',x,y_poly,'g');

如图:
在这里插入图片描述

其他形式的坐标图

  • 杆图 stem(x,y)
  • 条形图 bar(x,y)
  • 填充图 fill(x,y)
  • 阶梯图 stairs(x,y)
  • fill函数按向量元素下标渐增次序依次用直线段连接x,y对应元素定义的数据点。

举例:

x = 0:0.35:7;
y = 2*exp(-0.5*x);
subplot(2,2,1);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);
subplot(2,2,2);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);
subplot(2,2,3);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);
subplot(2,2,4);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);

如图:
在这里插入图片描述

分段函数绘制

方法一:分段写函数的定义域值域

举例:

%分别写出各段的xy
t1=0:0.1:10;
v1=0.5*t1.^2;t2=10:0.1:20;
v2=2*t2+10;t3=20:0.1:30;
v3=sin(t3);%合并xy
t=[t1 t2 t3];
v=[v1 v2 v3];%画图
plot(t,v);

如图:
在这里插入图片描述

方法二:判断定义域

举例:

%组合函数y=y1.*(x定义域)+y2.*(x定义域)
x=0:0.1:2;
y=x.*(x>=0&x<=1)+(-(x-1).^2+1).*(x>1&x<=2);%括号外是函数,括号内判断为1
plot(x,y);   

如图:
在这里插入图片描述

方法三:if else 判断

举例:

t=0:0.01:30;
v=zeros(size(t));
for i=1:length(t)if t(i)<=10v(i)=0.5*t(i).^2;elseif(t(i)>=10)&(t(i)<=20)v(i)=2*t(i)+10;elsev(i)=sin(t(i));end
end
plot(t,v);

如图:
在这里插入图片描述

横纵坐标范围设置

用法一:axis

axis(limits) %limits指定当前坐标区的范围。以包含 4 个元素的向量形式指定范围。

举例:

x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'-o');
axis([0 2*pi -1.5 1.5]);%指定横坐标范围0-2pi,纵坐标范围-1.5-1.5

如图:
在这里插入图片描述

用法二:xlim ylim

xlim([0 2*pi]);%指定横坐标范围
ylim([-1.5 1.5]);%指定纵坐标范围
xlim([-inf 2*pi]);%使用inf自动指定横坐标一边的范围

举例:

x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'-o');
xlim([0 2*pi]);%指定横坐标范围0-2pi
ylim([-1.5 1.5]);%指定纵坐标范围-1.5-1.5

绘制的图和上图一样。

标题、轴标签、图例、字体大小及轴线位置设置

标题:

title('Original Signal');%标题放单引号内

轴标签:

xlabel('X(m)');%横坐标标签放单引号内
ylabel('Y(m)');%纵坐标标签放单引号内

图例:

legend(label1,...,labelN) %设置图例标签。以字符向量或字符串列表形式指定标签,例如 legend('Jan','Feb','Mar')。

字体大小:

title('标题名','FontSize',20)
xlabel('X','FontSize',15)
ylabel('Y','FontSize',10)

轴线位置:

默认情况下,x 轴和 y 轴沿坐标区的外边界显示。通过设置 Axes 对象的 XAxisLocation 和 YAxisLocation 属性来更改轴线位置。将 XAxisLocation 设置为 ‘top’、‘bottom’ 或 ‘origin’。将 YAxisLocation 设置为 ‘left’、‘right’ 或 ‘origin’。这些属性仅适用于二维视图中的坐标区。

ax = gca;
ax.XAxisLocation = 'top';%x轴线位置放于顶处
ax.YAxisLocation = 'right';%y轴线位置放于右边

举例:

x = linspace(-2*pi,2*pi,100);
y1 = sin(x);
y2 = cos(x);
figure;
plot(x,y1,x,y2);%一图两线
xlabel('-2\pi < x < 2\pi');%x轴标签
title('Line Plot of Sine and Cosine Between -2\pi and 2\pi','FontSize',15);%标题
ylabel('Sine and Cosine Values');%y轴标签
legend({'y = sin(x)','y = cos(x)'},'Location','southwest','FontSize',8);%放在左下角ax = gca;
ax.XAxisLocation = 'origin';%x轴线位置放于原点处
ax.YAxisLocation = 'origin';%y轴线位置放于原点处

如图:
在这里插入图片描述

补充

颜色与线型方案

plot(x,y1,'g',x,y2,'b--o',x,y3,'k*');%单引号中选择颜色+线型:如b*、r-、k-o
类型含义
颜色'c' 'm' 'y' 'r' 'g' 'b' 'w' 'k'青蓝 品红 黄 红 绿 蓝 白 黑
线型'-' '--' ':' '-.' 无字符实线 虚线 点线 点划线 没有线条
标记类型'+' 'o' '*' 'x' 's' 'd' '^' 'v' '>' '<' 'p' 'h' 无字符加号 空心圆 星号 字母 x 空心正方形 空心菱形 空心上三角 空心下三角 空心右三角 空心左三角 空心五角形 空心六角形 无标记

点乘和乘的区别

在上面的函数绘制中使用到了*与.*, .^ , ./等运算,其区别如下:

以*与.*为例:

1.1,在进行数值运算和数值乘矩阵时,

这两种没有区别,例如:a*b=a.*b; a*B=a.*B; B*a=B.*a(其中小写字母表示数值,大写字母表示矩阵)

1.2 ,在进行矩阵和矩阵运算时,

*表示普通的矩阵乘法,要求前面矩阵的列数等于后面矩阵的行数;

.*表示两个矩阵对应元素相乘,要求两个矩阵行数列数都相等。

举一反三: /与./ ^与.^ 也是一样的道理。

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

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

相关文章

4-2计算小于1000的正整数的平方根

#include<stdio.h> #include<math.h> int main() {int i;int t;printf("请输入一个数:");scanf("%d",&i);if(i>1000){printf("请重新输入一个数&#xff1a;");scanf("%d",&i);}tsqrt(i);printf("%d的平方…

数字化文化的守护之星:十八数藏的非遗创新之道

在数字时代的浪潮中&#xff0c;十八数藏犹如一颗璀璨的守护之星&#xff0c;为传统文化注入了新的生命力。这个非遗创新项目以数字化为工具&#xff0c;以守护为使命&#xff0c;开辟了文化传承的新航道。 十八数藏是文化数字守护的引领者&#xff0c;通过数字技术&#xff0…

极智嘉(Geek+)官宣重磅合作伙伴,再度赋能仓储自动化解决方案落地

近日&#xff0c;全球仓储机器人引领者极智嘉(Geek)再度官宣重磅合作伙伴&#xff0c;其与全球先进的物流自动化和软件公司FORTNA达成了战略合作。 当前&#xff0c;电商领域发展迅速&#xff0c;高效、可拓展的订单履行方案需求急剧增长。基于这一形势&#xff0c;极智嘉与FO…

测试之路,女孩子软件测试-职业规划建议,路就在脚下...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试岗是不是加…

网站被攻击怎么办?德迅云安全SCDN为您保驾护航

安全加速&#xff08;Secure Content Delivery Network&#xff0c;SCDN&#xff09;是德迅云安全推出的集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络&#xff08;CDN&#xff09;或全站加速网络&#xff08;ECDN&#xff09;…

buildAdmin 后端控制器的代码分析

buildAdmin的代码生成&#xff0c;很像是 fastadmin 的生成模式&#xff0c;当我们利用数据库生成了一个控制器的时候&#xff0c;我们可以看到&#xff0c; 它的生成代码很简洁 <?phpnamespace app\admin\controller\askanswer;use app\common\controller\Backend;/*** 回…

day17-高速缓冲区的管理机制

1.目的 用户与磁盘进行文件交互时的流程 磁盘与高速缓冲区的关系 加深块设备驱动的理解 hash 循环链表 单链表的使用方法 2.高速缓冲区的工作流程 高速缓冲区中存储这对应的块设备驱动的数据 当从块设备中读取数据的时候&#xff0c;OS首先会从高速缓冲区中进行检索&#xff0…

Web UI 自动化测试方案(超级干货)看完不会你找我!

项目讨论 一、项目中符合自动化测试的部分有哪些&#xff1f;(目标和范围 scope&#xff0c; 准入准出标准) 1、稳定的需求点、变动较少的页面 2、每日构建后的测试验证 daily build 3、比较频繁的回归测试 4、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重…

openssl1.0.2版本Windows安装问题

之前安装过1.1版本&#xff0c;Windows环境下C 安装OpenSSL库 源码编译及使用&#xff08;VS2019&#xff09;_vs2019安装openssl_肥宝Fable的博客-CSDN博客 后来发现linux编译不过&#xff0c;以为是版本问题&#xff0c;相差太大&#xff0c;所以降一下版本&#xff0c;以免…

Idea远程debug

Idea远程debug 一、方法 1.1、启动时加参数 java -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar remote-debug-0.0.1-SNAPSHOT.jar1.2、运行时加参数 在没有显式-agentlib:jdwp参数的情况下进行远程调试&#xff1a; 首先&#xff0c;确保您的Sprin…

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了&#xff0c;这次就来学习一个3d版本的&…

如何解决找不到vcruntime140_1.dll问题,亲测有效的5个解决方法分享

在您平常在电脑上正常操作时&#xff0c;有时可能会碰到一个很常见的困扰&#xff0c;那就是弹出一条“找不到vcruntime140_1.dll”的报错信息。这种情况常常是因为咱们在点击启动某个应用程序或者执行某项任务时&#xff0c;系统所需的一款叫作"vcruntime140_1.dll"…

深入理解 synchronized 原理

目录 一. 前言 二. Java对象的内存布局 2.1. 对象头 2.2. Mark Word 2.3. Class Metadata Pointer 2.4. Length 三. 偏向锁 3.1. 偏向锁的工作流程 3.2. 偏向失效 3.2.1. 误区一 3.3. 偏向撤销 3.3.1. 误区一 3.4. 偏向撤销的底层实现 3.5. HashCode与偏向撤销 …

【算法萌新闯力扣】:最常见的单词

力扣热题&#xff1a;最常见的单词 开篇 今天是备战蓝桥杯的第17天&#xff0c;今天到现在刷了5道算法题&#xff0c;分享一道很不错的题目。 题目链接:819.最常见的单词 题目描述 代码思路 根据题目要求&#xff0c;我的思路是&#xff1a;建立一个哈希表&#xff0c;把每个…

释放搜索潜力:基于Docker快速搭建ES语义检索系统(快速版),让信息尽在掌握

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

uni-app(1)pages. json和tabBar

第一步 在HBuilderX中新建项目 填写项目名称、确定目录、选择模板、选择Vue版本&#xff1a;3、点击创建 第二步 配置pages.json文件 pages.json是一个非常重要的配置文件&#xff0c;它用于配置小程序的页面路径、窗口表现、导航条样式等信息。 右键点击pages&#xff0c;按…

Leetcode刷题详解——打家劫舍 II

1. 题目链接&#xff1a;213. 打家劫舍 II 2. 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻…

虚拟机里为什么桥接模式可以广播,NAT模式不能广播?

在虚拟机网络配置中&#xff0c;桥接模式&#xff08;Bridged mode&#xff09;允许虚拟机在与主机相同的网络上作为一个独立的设备出现。这意味着虚拟机可以接收和发送广播消息&#xff0c;就像物理机器一样&#xff0c;因为它们处于同一个物理网络上。 相反&#xff0c;NAT模…

2437. 有效时间的数目

2437. 有效时间的数目 Java&#xff1a;回溯 class Solution {int res 0;public int countTime(String time) {char[] arr time.toCharArray();dfs(arr, 0);return res;}public void dfs(char[] arr, int pos) {if (pos arr.length) {if (check(arr)) {res;}return;}if (ar…

解决龙芯loongarch64服务器编译安装Python后yum命令无法使用的问题“no module named ‘dnf‘”

引言 在使用Linux系统时,我们经常会使用yum来管理软件包。然而,有时候我们可能会遇到yum不可用的情况,其中一个原因就是Python的问题。本文将介绍Python对yum可用性的影响,并提供解决方案。 问题引发 正常情况下,安装linux系统后,yum命令是可用状态,升级Python版本后,…