绘图函数

一、plot():二维图形绘制

1、plot(y):

       对于只含一个输入参数的plot函数,如果输入参数y为向量,则以该参数为纵坐标,横坐标从1开始至与向量的长度相等;如果输入参数y是矩阵时,则按列绘制每列元素的曲线,每条曲线的纵坐标为该列上的元素值,横坐标从1开始,与元素的行坐标对应,曲线条数等于输入参数矩阵的列数,多条曲线默认状态下通过颜色区别。

2、plot(x,y):

      对于含有两个输入参数的plot函数,如果x是向量,y也为向量,则向量x、y的长度必须相同;如果x为向量时,y为矩阵,则矩阵y必须有一维大小与向量长度相等,将以x为横坐标,绘制出多条不同颜色的曲线,曲线条数等于矩阵y的另一维的大小;如果x、y是同维矩阵,则分别以矩阵x、y对应列元素为横、纵坐标,绘制曲线,曲线条数等于矩阵的列数,不同的曲线默认状态下会以不同的颜色区别。

3、plot(x1,y1,x2,y2,...):

       对于含有多个输入参数的plot函数,x1和y1、x2和y2分别配对,即以x1为横坐标数据时,y1为相应的纵坐标,以x2为横坐标数据时,y2为相应的纵坐标,以此类推,要求配对的向量长度相等,但是组间向量可以不相等,最终可以在同一图形窗口内绘制出多条曲线。

4、plot(x1,y1,LineSpec):

       用于对图形的线型、数据点的样式、颜色进行控制,LineSpec为控制线型、点型、颜色的字符串。3个控制符连为字符串对图形样式控制,线型、点型、颜色的控制符的位置对结果没有影响,可以缺省任何一个或多个参数。

例:“r-.”表示红色点画线,“y--p”表示黄色虚线并用五角星标记数据点。如果使用plot函数的数据参数为矩阵数据绘制多条曲线时,设置了图形样式,各曲线的样式将统一,一般不建议这样操作。

5、plot(x1,y1,'PropertyName',PropertyValue):

       对绘制的图形属性进一步设置。其中PropertyName为曲线的属性名称,PropertyValue为属性的值,属性和属性值需要成对出现,且不同属性之间没有前后顺序关系。

二、plotyy():双y轴图形绘制(如果两组数据的数据范围相差较大,而又希望放在同一图形中比较分析,可以绘制双y轴图形。)

1、plotyy(x1,y1,x2,y2):

       其中x1、y1和x2、y2分别为一组曲线。绘制的图形横坐标标度相同,纵坐标左右各有一个标度,左纵坐标对应x1、y1数据对,右纵坐标对应x2、y2数据对。

2、plotyy(x1,y1,x2,y2,'function'):

       以“function”函数形式绘制双y轴形式,function可为任意可接收function(x,y)形式绘图的函数,可以是MATLAB系统自带的plot、semilogx、semilogy、loglog、stem函数或者用户自定义的函数。

3、plotyy(x1,y1,x2,y2,'function1','function2'):

       曲线x1、y1以“function1”形式绘制,曲线x2、y2以“function2”形式绘制。

三、loglog():对数坐标图形的绘图(用于x、y轴均为对数的坐标系绘图)

1、loglog(y)

2、loglog(x1,y1)

3、loglog(x,y,LineSpec)

4、loglog(x,y,'PropertyName',PropertyValue)

例:

x=1:10:100;

loglog(x,exp(2*x));

四、semilogx() / semilogy():半对数坐标图形的绘制

1、semilogx():绘制x轴为对数坐标,y轴为线性坐标的二维图形。

2、semilogy():绘制y轴为对数坐标,x轴为线性坐标的二维图形。

       以上函数主要用于离散数据的二维图形绘制。

五、fplot():符号函数的绘制

       可以根据函数的表达式自动调整自变量的范围,无须给函数赋值,直接生成能反映函数变化规律的图形,在函数变化快的区域,采用小的间隔,否则采用大的坐标间,使绘制的图形计算量与时间最小,而又能尽可能精确反映图形的变化。fplot()函数一般在对横坐标取值间隔没有明确要求,仅查看函数的大致变化规律的情况下使用。

1、fplot('function',limits):

       在指定的坐标值范围limits内绘制函数function的图形。其中limits是指定x轴范围的向量[xmin xmax]或同时指定x轴和y轴范围的向量[xmin xmax ymin ymax];函数function必须是一个包含y=f(x)的M文件或包含变量x,且能用函数eval计算的字符串。

2、fplot('function',limits,LineSpec):

       LineSpec参数设置图形的线型、数据点的样式、颜色。

3、fplot('function',limits,err):

       绘制函数function时允许的相对误差值为err,默认状态下相对误差的值为2e-3。

六、ezplot():符号函数的绘制

       ezplot()函数与fplot函数的功能基本类似,可以方便地绘制表达式或函数的图形。与fplot函数不同的是函数的表达式显示在图形的上方,同时对坐标轴可不加任何限制做图。

1、ezplot(f):

       绘制表达式或函数的图形,默认x轴的范围是[-2*pi,2*pi]。

2、ezplot(f,[min,max]):

       设置绘图时x轴的范围。

3、ezplot(f,[xmin,xmax,ymin,ymax]):

       同时设置绘图时x轴和y轴的范围。

七、Grid():图形栅格的控制(函数grid用于在二维或三维图形上控制坐标轴的栅格显示。)

1、grid on:给当前的坐标轴添加栅格。

2、grid off:取消当前的坐标轴中的栅格。

3、grid:图形栅格显示状态的切换。

八、Hold():图形保持的控制

       图形窗口生成图形后,再生成下一幅图形的时候,会覆盖原图形,如果想保留原图形可以使用hold函数用于图形保持控制。

1、hold on:当前图形窗口中的图形处于保持状态,后续图形叠加在原有图形上。

2、hold off:关闭图形窗口中的图形保持状态,后续图形覆盖原有图形。

3、hold:在hold on与hold off之间转换。即在叠加与覆盖图形之间切换。

       函数ishold用于测试图形的保持状态,返回值“1”表示图形处于叠加状态,“0”表示图形处于覆盖状态。

九、ginput():读点函数(用于交互式从MATLAB绘制的图形中读取点的坐标)

1、[x,y]=ginput(n):

       用于交互式的通过鼠标读取图形中的点,返回点的横纵坐标值,其中x为点的横坐标值,y为点的纵坐标值,输入参数n为选择的点的个数,可以按“Enter”键提前结束读点操作。

2、[x,y]=ginput:

       可以无限地读取图形中点的坐标直到按下“Enter”键。

3、[x,y,button]=ginput:

         button值返回读点时的鼠标操作,其中“1”代表按下鼠标左键读点,“2”代表按下鼠标中键读点,“3”代表按下鼠标右键读点,通过不同鼠标按键的区别,可以对读取点进行分类。

十、zoom():图形缩放(用于对二维图形的缩放控制,放大或缩小会相应地改变坐标轴范围。)

1、zoom on:

       打开图形的缩放功能,通过单击鼠标,可以放大图形,放大图形后要想缩小图形,需要按住“Shift”键,再单击鼠标键。

2、zoom off:

        关闭交互式图形缩放功能。

3、zoom out:

       将缩放后的图形恢复到原始状态。

4、zoom reset:

       将当前图形的状态作为“原始态”,以后使用zoom out图形恢复到此状态。

5、zoom:

       用于切换缩放的状态。

6、zoom xon:

       仅对x轴进行图形缩放。

7、zoom yon:

       仅对y轴进行图形缩放。

十一、saveas():图形保存(可以按照指定的格式保存图形)

1、saveas(gca,'filename','fileformat'):

       其中gca指明保存当前的图形对象,filename为图形的文件名,可以为绝对路径下的文件名,或者直接为文件名,保存至当前路径下,fileformat保存的图形的文件类型,包括常见的多种图形格式:fig、eps、emf、png、jpg、tif等常用的图片格式类型,其中fig为Matlab默认图形文件类型,保存为该格式后,下次打开后可以直接编辑修改。

十二、print():图形打印(可用于打印图形窗口的图形,必须紧跟在函数plot()后使用)

1、print filename:命令中“filename”为打印的图形文件文件名。

2、print -dformat:命令中“dformat”为打印的图形文件的存储格式。

3、print ...-option:命令中“option”设置打印的图形文件的参数。

类函数

1、Link类函数

       基于DH法建模,建立其相关关系,DH法建模分改进型标准型,Link类函数的一种用法是 R = Link([theta,d,a, alpha]),其中参数theta代表DH建模的关节角、参数d代表DH建模的连杆偏距、参数a代表DH建模的连杆长度、参数alpha代表DH建模的连杆转角

例:

L(1) = Link('d', d(1), 'a', a(1), 'alpha', alp(1));

属性:

(1)R.RP:可以用来获取连杆关节类型    R:转动关节,P:移动关节
(2)R.theta:可以用来获取连杆关节角
(3)R.d:可以用来获取连杆偏距
(4)R.a:可以用来获取连杆长度
(5)R.alpha:可以用来获取连杆扭转角
(6)R.sigma:也可以用来查询我们建立的是转动关节还是移动关节,默认0是转动关节; 1是移动关节
(7)R.mdh:可以用来查询我们是按照标准DH法建立的还是按改进型DH法建立的模型,默认0为标准D-H法,1为改进D-H法

2、Seriallink类函数

       可以把我们使用Link函数建立的连杆连成一个整体,生成一个串联机械臂

例:

L(1) = Link('d', d(1), 'a', a(1), 'alpha', alp(1));
L(2) = Link('d', d(2), 'a', a(2), 'alpha', alp(2), 'offset', 0);
L(3) = Link('d', d(3), 'a', a(3), 'alpha', alp(3), 'offset', 0);
L(4) = Link('d', d(4), 'a', a(4), 'alpha', alp(4), 'offset', 0);
L(5) = Link('d', d(5), 'a', a(5), 'alpha', alp(5));
L(6) = Link('d', d(6), 'a', a(6), 'alpha', alp(6));
bot = SerialLink(L,'name','rbt');%将六个连杆组合起来 
      使用bot = SerialLink(L,'name','rbt');就可以将其连成一个整体生成一个六周的串联机械臂,并取名为bot(名字可以任意取);加个modified表示用改进型DH法建模。

属性:

Properties (可读参数):
   n             关节自由度
   config     机械臂配置字符串
   mdh        DH约定形式布尔值
   theta       DH参数
   d             DH参数
   a             DH参数
   alpha      DH参数

Properties (可读可写参数):
   links     连杆对象的矢量 (1xN)
   gravity  重力方向[gx gy gz]
   base     机器人基座的姿态  (4x4 homog xform)
   tool       机器人工具坐标系转换 (4x4 homog xform)
   qlim      关节极限[qmin qmax] (Nx2)
   offset    运动关节坐标偏移 (Nx1)
   name    机器人的名称(用于图形显示) 
   manuf    注释
   comment    注释
   plotopt   plot()方法的选项(单元格数组)
   fast        使用MEX版本的RNE(只有当mex文件存在时才能设置为true。默认为true)

3、

使用.display显示出我们建立的这个机械臂模型的信息
bot.display
使用.teach查看我们建立机械臂三维模型,可以对关节变量的值进行修改
bot.teach
使用.plot来查看在指定某组关节变量的机械臂三维模型,在使用.plot时,需要指定各关节变量的值
bot.plot

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐