MATLAB绘图基础

一、二维曲线绘图的基本操作

1、plot指令的基本调用格式

(1)plot(x) x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线 x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。 x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线

(2)plot(x, y) x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线 x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线 x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。

(3)plot(x1, y1, x2, y2, …) 绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。 其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

2、使用直角坐标系

在[0,2π]区间内,绘制曲线

 x = 0:pi/100:2*pi;
y = 2*exp(-0.5*x).*sin(2*pi*x);
plot(x,y)

3、使用参数方程绘制曲线

t = -pi:pi/100:pi;
x = t.*cos(3*t);
y = t.*sin(t).^2;
plot(x,y)
​

4、绘制复杂曲线

t=(0:pi/100:pi)’;       %长度为101的时间采样列向量
y1=sin(t)*[1,-1];       %包络线函数值,是(101x2)的矩阵
y2=sin(t).*sin(9*t);  %长度为101的调制波列向量
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')     
axis([0,pi,-1,1])%控制轴的范围

二、多次叠绘、双纵坐标和多子图

1、多次叠绘

多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。 hold on 保持当前坐标轴和图形,并可以接受下一次绘制。 hold off 取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。

2、双纵坐标:plotyy指令

1、plotyy指令调用格式:

plotyy(x1, y1, x2, y2) x1-y1曲线y轴在左, x2-y2曲线y轴在右。

  x = 0:0.01:20;
  y1 = 200*exp(-0.05*x).*sin(x);
  y2 = 0.8*exp(-0.5*x).*sin(10*x);
  plotyy(x,y1,x,y2);
​

3、多子图

3、MATLAB允许在同一图形窗口布置几幅独立的子图。具体指令:

subplot(m, n, k) 使(mxn)幅子图中第k个子图成为当前图 subplot(‘postion’, [left, bottom, width, height]) 在指定的位置上开辟子图,并成为当前图 说明: subplot(m, n, k)的含义:图形窗口包含(mxn)个子图,k为要指定的当前子图的编号。其编号原则: 左上方为第1子图,然后向右向下依次排序。该指令按缺省值分割子图区域。 subplot(‘postion’, [left, bottom, width, height])用于手工指定子图位置,指定位置的四元组采用归一化的标称单位,即认为整个图形窗口绘图区域的高、宽的取值范围都是[0, 1],而左下角为(0,0)坐标。 产生的子图彼此独立。所有的绘图指令均可以在子图中使用。

4、刻度、分格线和坐标框

1、分格线与grid指令

grid on 画出分格线 grid off 不画分格线 MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。

2、坐标框

box on 控制加边框线 box off 控制不加边框线 刻度设置

3、指令及格式:

set(gca, ‘xtick’, xs, ‘ytick’, ys) xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。

5、图形标识

图形标识包括:

图名(title) 坐标轴名(xlabel、ylabel) 图形文本注释(text) 图例(legend)

简捷使用格式

title(s) % s为字符串变量或常量 xlabel(s) ylabel(s) legend(s) text(x, y, s) % 指定坐标(x, y)处加注文字

二、MATLAB文件执行方式

1、M文件的分类

(1)用Matlab语言编写的程序,称为M文件.

是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。

(2)M文件根据调用方式的不同分为两类:

命令文件(Script File) ​ 函数文件(Function File) ​ 它们的扩展名都是.m

说明: ====== 命令文件和函数文件的区别 ======

命令文件没有输入参数,也不返回输出参数;函数文件可以带输入参数,也可以返回输出参数。 命令文件对工作空间中的变量进行操作,文件中所有命令的执行结果也返回工作空间中;函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量也被清除。 命令文件可以直接运行;函数文件不能直接运行,要以函数调用的方式来调用它

2、函数文件

函数文件是另一种形式的M文件,每一个函数文件都定义一个函数。 Matlab提供的标准函数大部分是由函数文件定义的。

结构:

function  输出形参表 = 函数名(输入形参表)
           注释说明部分
           函数体语句
​

说明:

1. 关于函数文件名

函数文件名通常由函数名再加上扩展名.m组成。 ​ 当函数文件名与函数名不同时,Matlab将忽略函数名而确认文件名 ​ 因此调用时使用函数文件名。

2. 关于注释说明部分

注释说明包括3部分: ​ ① 紧随引导行之后以%开头的第一注释行。 ​ 这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor ​ 关键词查询和help在线帮助时使用。 ​ ② 第一注释行及之后连续的注释行。 ​ 通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全 ​ 部在线帮助文本。

③ 与在线帮助文本相隔一空行的注释行。 ​ 包括函数文件编写和修改的信息,如作者和版本等。

3、关于return语句

如果在函数文件中插入了return语句,则执行到该语句就结束函数 ​ 的执行,流程转至调用该函数的位置。通常也不使用return语句

  例5.10 编写函数文件,求半径为r的圆的面积和周长。
     函数文件如下:
     function [s,p] = fcircle(r)
     % FCIRCLE calculate the area and perimeter of a circle of radii r
     % r       圆半径
     % s       圆面积
     % p      圆周长
​
     s = pi*r*r;
     p = 2*pi*r;
​

3、函数调用

(1)函数调用的一般格式是:

[输出实参表] = 函数名(输入实参表) 注意:函数调用时,各实参出现的顺序、个数,应与函数定义时相同。

(2)在Matlab中,函数可以嵌套调用,即一个函数可以调用别的函数。

一个函数调用自身称为函数的递归调用。

 显然,求n!需要求(n-1)!,这时可采用递归调用。
  函数如下:
  function f = factor(n)
   if n<=1
      f = 1;
   else
     f = factor(n-1)*n;  %递归调用求(n-1)!
   end
​

4、全局变量与局布变量

Matlab中,函数文件中的变量是局部变量。 如在若干函数中,都把某一变量定义为全局变量,那么这些函数将 共用这个变量。 全局变量的作用域是整个Matlab的工作空间,所有函数都可以对它 进行存取和修改。

全局变量用global命令定义,格式为: global 变量名

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值