MATLAB学习之画图(一)

最近在学习MATLAB画图部分,把最近学习的心得写下来,顺便看看自己掌握的程度。

首先,MATLAB的画图功能十分强大且操作较为简单,能够画出各种图形。正因为如此,大部分论文中的图像都是由MATLAB画出的。

plot()

plot()函数是画一个2维图像,通过查看plot()的帮助文档我们可以看到plot()有以下几种形式:

Syntax
plot(X,Y)
plot(X,Y,LineSpec)
plot(X1,Y1,…,Xn,Yn)
plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn)
plot(Y)
plot(Y,LineSpec)
plot(___,Name,Value)
plot(ax,___)
h = plot(___)

plot(X,Y)说明

plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。

如果 X 和 Y 都是向量,则它们的长度必须相同。plot 函数绘制 Y 对 X 的图。

如果 X 和 Y 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图。

如果 X 或 Y 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。

示例

我们用MATLAB画一个sin(t)函数,代码如下:

t=0:0.02:2*pi;%t从0到2*pi之间每0.02取一个点f=sin(t);plot(t,f);

画出图像如下:

如果我们要画出sin(t)和sin(2t)大家很容易就会想到如下方式:

t=0:0.02:2*pi;%t从0到2*pi之间每0.02取一个点f1=sin(t);
f2=sin(2*t);plot(t,f1);
plot(t,f2);

然而执行的结果却只有sin(2t)的图像,如下所示:

会出现这种情况是因为MATLAB的figure是默认会被覆盖的,如果想在一个figure中显示两个曲线有两种方法:

(1).利用hold on和hold off,代码如下:

t=0:0.02:2*pi;%t从0到2*pi之间每0.02取一个点f1=sin(t);
f2=sin(2*t);hold on;
plot(t,f1);
plot(t,f2);
hold off;

只需在要准备画图像前加一个hold on,在结束是加一个hold off就能把图像在一个figure中显示出来;

(2).利用plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn),代码如下所示:

t=0:0.02:2*pi;%t从0到2*pi之间每0.02取一个点f1=sin(t);
f2=sin(2*t);plot(t,f1,'ok',t,f2,'--g');

我们只需要在同一个plot中把所有需要画的曲线写出来就可以了,可能有些人会问我后面的’ok‘,’–g’是什么玩意。这其实是你的line的表示方式,通过查看plot帮助文档我们可以看到下表:

Specifier Line Style
- Solid line (default)
Dashed line
Dotted line
-. Dash-dot line
Specifier Marker
o Circle
+ Plus sign
* Asterisk
. Point
x Cross
s Square
d Diamond
^ Upward-pointing triangle
v Downward-pointing triangle
> Right-pointing triangle
< Left-pointing triangle
p Pentagram
h Hexagram
Specifier Color
y yellow
m magenta
c cyan
r red
g green
b blue
w white
k black

Line Style是指曲线的风格,是以直线-的方式还是以虚线–等;maker指取样点的表示方式,是以圆圈表示还是以点表示等;Color指曲线的颜色。因此我上面的’ok‘指sin(t)取样点表示为圆圈,颜色为黑色;’–g’指sin(2t)曲线为虚线,颜色为绿色显示。

plot()其他的问题可以参考plot()的帮助文档。

Legend()

通过上面的学习我们基本了解MATLAB的画图,但有时我们在一个figure中显示的曲线过多时,很难分辨每一个曲线表示的函数,因此我们就需要Legend()函数来帮助我们表示。

参考以下程序:

x = -pi:pi/20:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,'-ro',x,y2,'-.b');
legend('sin(x)','cos(x)');

如图所示,我们画出的正弦和余弦函数,并分别用了不同的表示方法来表示,最后的legend(‘sin(x)’,‘cos(x)’);就是用来显示右上角,用来区别两条曲线。legend()会按照plot()中的先后来分别表示出来曲线。

title()和?Label()

通过上面的plot()和legend()我们已经可以画出一个不错的图像,然而在真正画图的时候还缺少两个重要的东西就是标题、X轴和Y轴的意义。因此我们就用到了title()和XLabel()和YLabel()函数,title()就是用来显示图像的标题,XLabel()用来控制X轴的参数,YLabel()用来控制Y轴的参数。

参考以下程序:

x = 0:0.1:2*pi; y1 = sin(x); y2 = exp(-x);
plot(x, y1, '--*', x, y2, ':o');
xlabel('t = 0 to 2\pi');
ylabel('values of sin(t) and e^{-x}')
title('Function Plots of sin(t) and e^{-x}');
legend('sin(t)','e^{-x}');

其中x轴表示0到2*pi,y轴表示sin(x)和e(x)的曲线,标题为sin(t)和e()的函数,其中\pi表示转义字符,让pi显示

,详情可参考xlable
因为时间关系,今天就更新到这里。

MATLAB学习之画图(一)相关推荐

  1. matlab分段函数怎么画图_从零开始的matlab学习笔记——(17)其它实用的绘图工具...

    matlab应用--求极限,求导,求积分,解方程,函数绘图....更多内容尽在个人专栏:matlab学习 上一节我们简单了解了一下matlab绘图,这一节我们看一下参数方程,隐函数,极坐标等图像绘制. ...

  2. MATLAB学习笔记(二)

    MATLAB学习笔记(二) 一.矩阵运算 矩阵分析 向量和矩阵的范数运算 矩阵的秩 矩阵的化零矩阵 矩阵的化简rref()函数 线性方程组 超定线性方程组求解 矩阵分解 1.对称正定矩阵的Choles ...

  3. linspace函数matlab_从零开始的matlab学习笔记——(29)泰勒逼近函数

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图....更多内容尽在个人专栏:matlab学习 上一节我们成功制作了能自己转圈的三维螺旋线,这里我们再来 ...

  4. MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...

  5. Matlab学习记录 1

    文章目录 Matlab学习记录 使用帮助文档 Matlab读取CSV文件 MATLAB查看变量的类型 Matlab 提取矩阵 某一行 或者 某一列 的方法 mic的计算 矩阵下标从1开始 矩阵转置 获 ...

  6. matlab 求向量的交集_从零开始的matlab学习笔记——(16)函数绘图

    matlab应用--求极限,求导,求积分,解方程,函数绘图....更多内容尽在个人专栏:matlab学习 这一节开始我们正式进入函数绘图,内容比较繁杂,我尽量把它整合的简洁一些. 单一图像: 首先我们 ...

  7. matlab disp函数_从零开始的matlab学习笔记——(13)符号计算中的多项式

    matlab应用--求极限,求导,求积分,解方程....更多内容尽在个人专栏:matlab学习 上一节我们算是简单了解了一下怎么用matlab解方程,这一节我么再回到多项式与符号计算. 符号计算中的多 ...

  8. B站台湾大学郭彦甫|MATLAB 学习笔记|06 高阶绘图 Advanced Plot

    MATLAB学习笔记(06 高阶绘图 Advanced Plot) 如果想获得更好浏览体验的朋友可以转到下面链接 06 1. 对数图 (Logarithm Plots) x = logspace(-1 ...

  9. B站台湾大学郭彦甫|MATLAB 学习笔记|13 统计 Statistics__Data_Analysis

    MATLAB学习笔记(13 统计 Statistics_&_Data_Analysis) 如想获得更好体验,可以转到下面链接:13 文章目录 MATLAB学习笔记(13 统计 Statisti ...

最新文章

  1. php实现基于shmop扩展的数据缓存
  2. getReadableDatabase与getWritableDatabase的区别
  3. 几大科技公司在VR方面的布局是怎么样的?
  4. KEIL-MDK编译错误问题解决办法
  5. jsoncpp去掉多余字符_Python超详细的字符串用法大全
  6. 向github传项目
  7. JAVA 多用户商城系统b2b2c- 服务消费者(rest+ribbon)
  8. 渗透测试web安全 - webshell 免杀 绕过waf总结
  9. 软件工程 可行性分析与需求分析
  10. 马氏距离Mahalanobis Distance实例
  11. c++工程师历年企业笔试真题汇总
  12. 明星热图|童瑶、周迅、易烊千玺、张新成签约新品牌;李宇春、陈飞宇参加品牌活动...
  13. Qt-Q_OBJECT宏及控件提升导致的类重定义问题
  14. 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发
  15. 蕴含存在的意义到底是什么
  16. 章节十四:Scrapy框架
  17. 20轮廓-hu不变矩的测试程序
  18. 一个菜鸟实习生的月总结
  19. Matlab学习-常用命令技巧
  20. http://localhost:8080/product/save找不到访问路径

热门文章

  1. 联合国曝光,杀手机器人来了,这可能是你见过最恐怖的视频...
  2. 亚马逊是如何成为全球最佳雇主的?
  3. 2016百度之星 - 测试赛(热身,陈题)-列变位法解密(模拟)
  4. 惠普服务器SPP包制作方法
  5. windows phone 7开发日志(正题二,字体)
  6. iphone快捷指令登录i-NUIST 南信大校园网自动登录
  7. operator=的用法
  8. 从抢购iPhone 6看苹果的产业与营销
  9. java 延时发送邮件_基于SpringBoot实现定时发送邮件过程解析
  10. Docker-第一课