MATLAB学习笔记(五)——MATLAB绘图

(一)二维数据曲线图

一、绘制单根二维曲线

1、基本调用格式

plot(x,y)

(1)x,y为长度相同的向量,分别用于储存x坐标和y坐标数据

(2)用于绘制以x,y为横,纵坐标的二维曲线。

(3)举例

>> x=linspace(0,2*pi,100);
>> y=2*exp(-5*x).*cos(4*pi*x);
>> plot(x,y)

效果如下:

从这里我们可以明白plot绘图,其实是取点,然后用光滑的曲线进行连接的。

2、plot函数最简单的调用格式

plot(x)

(1)x是实向量时,以该向量元素的下标为横坐标,元素为纵坐标画出一条连续曲线,这实际上是绘制折线图。

(2)x是复向量时,以向量元素的实部和虚部为横、纵坐标绘制一条曲线。

(3)举个例子

>> t=linspace(0,2*pi,100);
>> x=exp(i*t);
>> plot(x)

二、绘制多根二维曲线

1、plot函数的输入参数是矩阵形式

(1)当x是向量,y是有一维与x同维的矩阵时,绘制出多根不同颜色的线。

>> x=linspace(0,2*pi,100);
>> y=[sin(x);
     1+sin(x)
     2+sin(x)];
>> plot(x,y)

(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于列数。

>> x1=linspace(0,2*pi,100);
>> x2=linspace(0,3*pi,100);
>> x3=linspace(0,4*pi,100);
>> x=[x1,x2,x3]‘;

>> y=[sin(x1);1+sin(x2);2+sin(x3)]‘;
>> plot(x,y)

(3)对只包含一个输入参数的plot函数

a、当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线。

b、当输入参数是复矩阵时,则以实部、虚部为横、纵坐标绘制多条曲线。

t=linspace(0,2*pi,100);
x=exp(i*t);
y=[x;2*x;3*x]‘;
plot(y)

2、含多个输入参数的plot函数

(1)调用格式为

plot(x1,y1,x2,y2,……,xn,yn)

可以在同一坐标内画出3条曲线

(2)当输入参数有矩阵形式时,配对的x,y按对应的横纵坐标分别绘制曲线,条数还是等于列数。

3、具有两个纵坐标标度的图形

(1)调用格式

plotyy(x1,y1,x2,y2)

其中x1,y1对应一条曲线,而x2和y2对应另外一条曲线,然后左边是第一条曲线的纵坐标,右边是第二条曲线的纵坐标。

(2)实例

>> y1=0.2*exp(-0.5*t).*cos(4*pi*t);
>> y2=2*exp(-0.5*t).*cos(pi*t);
>> plotyy(t,y1,t,y2);

4、图形保持

一般情况下,每执行一次命令就刷新当前窗口,图形窗口原有图形将不复存在。若希望在已存在的图形上再继续添加新的图形,可以使用图形保持命令hold。

hold on保持

hold off取消保持

hold 在两者之间切换

三、设置曲线样式

调用格式为:

plot(x1,y1,选项1,x2,y2,选项2,……,xn,yn,选项n)

其中选项的顺序为“颜色”+“线性”+“标记符号”

四、图形标注与坐标控制

1、图形标注(因为可以直接加,所以这些命令了解一下就好了。。)

2、坐标控制(因为也可以直接调整,所以了解一下就好)

(1)调整坐标函数

axis([xmin xmax ymin ymax zmin zmax])

(2)grid命令

grid on 画网格线

grid off 不画网格线

grid      进行切换

五、图形的可视化编辑(因为2014有官方中文版,所以就不需要多说了- -)

六、对函数自适应采样的绘图函数

主要是我们使用plot函数的时候,我们为了方便都是取等步长的点,这样的话,如果遇到疏密不一的曲线就很难描绘出来,所以还有一个函数可以直接进行适应。

1、调用格式

fplot(fname,lims,tol,选项)

其中:fname为函数名,以字符串的形式出现。可以是由多个分量函数构成的行向量,分量函数可以是函数的直接字符串,也可以是内部函数名或函数文件名。

lims为x,y的取值范围。可以取二元向量,也可以四元向量

tol为允许的相对误差

2、实例

>> fplot(‘cos(tan(pi*x))‘,[0,1],1e-4)

七、图形窗口的分割

如果我们需要在一个图形窗口内绘制若干个独立的图形,这就需要对图形窗口进行分割。分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。

1、subplot函数的调用格式

subplot(m,n,p)

作用是将当前图形窗口分成m*n个绘图区,区号是按照行号优先编号,且选定第p个区为当前互动区。

2、一个demo

x_square=[-3,3,3,-3,-3];
y_square=[3,-3,3,3,-3];
x_circle=3*cos((0:10:360)*pi/180);
y_circle=3*sin((0:10:360)*pi/180);
x_triangle=3*cos([90,210,330,90]*pi/180);
y_triangle=3*sin([90,210,330,90]*pi/180);
subplot(2,2,1);
plot(x_square,y_square,‘-r‘);
axis([-4,4,-4,4]);
axis(‘equal‘);
title(‘square‘);

subplot(2,2,2);
plot(x_circle,y_circle,‘--k‘);
axis([-4,4,-4,4]);
axis(‘equal‘);
title(‘circle‘);

subplot(2,2,3);
plot(x_triangle,y_triangle,‘:b‘);
axis([-4,4,-4,4]);
axis(‘equal‘);
title(‘triangle‘);

(二)其他二维图形

一、其他坐标系下的二位数据曲线图

1、对数坐标图形

(1)调用格式

semilogx(x1,y1,选项1,x2,y2,选项2……)
semilogy(x1,y1,选项1,x2,y2,选项2……)
loglog(x1,y1,选项1,x2,y2,选项2……)

第一个函数为x为对数坐标,y为线性刻度。

第二个函数为y为对数坐标,x为线性刻度。

第三个函数x,y都是对数坐标。

(2)demo

x=linspace(0,10,100);
y=10*x.*x;
subplot(2,2,1);
plot(x,y);

subplot(2,2,2);
semilogx(x,y);

subplot(2,2,3);
semilogy(x,y);

subplot(2,2,4);
loglog(x,y);

2、极坐标图

(1)调用格式

polar(theta,rho,选项)

其中theat为极角,rho为矢径

(2)demo

>> r=sin(t).*cos(t);
>> polar(t,r)

二、二维统计分析图

条形图 bar(x,y,选项)
阶梯图 stairs(x,y,选项)
杆图 stem(x,y,选项)
填充图 fill(x1,y1,选项1,x2,y2,选项2……)
饼图 pie([a0,a1,a2,……])

前三个跟plot类似,然后fill就是将这些点连起来,然后如果最后不是封闭图形,那么首尾会自动连接起来。

(三)隐函数绘图

(四)三维图形

时间: 2024-10-12 01:33:05

MATLAB学习笔记(五)——MATLAB绘图的相关文章

matlab学习笔记之matlab基础篇

第1章 Matlab概述 matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体.同时Matlab也是一种编程语言,被称为第四代编程语言.全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写. Matlab常见的交互界面●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式.所有操作和运算

matlab学习笔记 bsxfun函数

matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下.   函数bsxfun [功能描述]两个数组间元素逐个计算. [应用场合]当我们想对一个矩阵A的每一列或者每一行与同一个长度相等的向量a进行某些操作(比较大小,乘除等)时,我们只能用循环方法或者利用repmat函数将要操作的向量a复制成和A一样尺寸的矩阵,进而进行操作.从MATLAB R2007a开始

matlab学习笔记(一)单元数组

matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil(3.18)=42.单元数组和结构体作用差不多, 相同点:都是存放不同类型的数据,能实现不同类型数据的存储机制. 不同点:结构体数组的 各个元素下有成员,并且每个成员有自己的名字,而单元数组没有成员和成员 名字的感念.3.单元数组,用[]表示元素间隔:用,表示元素之间的间隔:用:表示行间隔. 例如:c

Caliburn.Micro学习笔记(五)----协同IResult

Caliburn.Micro学习笔记(五)----协同IResult 今天说一下协同IResult 看一下IResult接口 /// <summary> /// Allows custom code to execute after the return of a action. /// </summary> public interface IResult { /// <summary> /// Executes the result using the specif

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

NLTK学习笔记(五):分类和标注词汇

[TOC] 词性标注器 之后的很多工作都需要标注完的词汇.nltk自带英文标注器pos_tag import nltk text = nltk.word_tokenize("And now for something compleyely difference") print(text) print(nltk.pos_tag(text)) 标注语料库 表示已经标注的标识符:nltk.tag.str2tuple('word/类型') text = "The/AT grand/J

Linux System Programming 学习笔记(五) 进程管理

1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity inside of a process the virtualization of memory is associated with the process, the threads all share the same memory address space 2. pid The idle pro

java之jvm学习笔记五(实践写自己的类装载器)

java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类装载器和安全管理器是可以被动态扩展的,或者说,他们是可以由用户自己定制的,今天我们就是动手试试,怎么做这部分的实践,当然,在阅读本篇之前,至少要阅读过笔记三. 下面我们先来动态扩展一个类装载器,当然这只是一个比较小的demo,旨在让大家有个比较形象的概念. 第一步,首先定义自己的类装载器,从Clas

WEB前端学习笔记 五

接web前端学习笔记第四篇,此篇为web学习笔记 五,在此感谢您的采集和转发,但请注明文章出自网知博学. 2.0.3  html标签的属性格式 现在我们知道了两个双标签分别是,标题标签:<h1> - <h6>.和段落标签:<p></p>还知道了一个换行的单标签:<br />,现在我们给<p></p>标签添加一个属性,来改变段落是右对齐,还是左对齐,还是居中. 如上图,<p>标签中的 align(中文就是排列的意

小猪的数据结构学习笔记(五)

小猪的数据结构学习笔记(五) 线性表之--循环链表                           --转载请注明出处:coder-pig 循环链表知识点归纳: 相关代码实现: ①判断是否为空表: ②单循环链表的存储结构 其实和单链表的结构是一样的! /*定义循环链表的存储结构*/ typedef struct Cir_List { int data; struct Cir_List *next; }Lnode; ③初始化循环单链表 代码如下: //1.循环链表的初始化 //表示一个元素,如