1、 1 matlab 画图中线型,颜色及字体的设置 31.1 plot 格式 31.2 图形尺寸和字体的设置:方法:Flie Export Setup,进入如下界面: 42 matlab 作图标注 52.1 坐标轴的标题:title 函数, 52.2 坐标轴的说明:xlabel 和 ylabel 函数, 52.3 图形 说明文字:text 和 gtext 函数 52.4 在图形中添加图例框:legend 函数。其调用格式为: 62.5 用鼠标点选屏幕上的点: .62.6 使用多个 x 轴和 y 轴 82.7 axis 对坐标轴的控制 93 绘图设置 93.1 网格设置 : 103.2 曲线设置
2、103.3 在单线图上绘制多重线:有三种办法. .104 一些特殊函数的绘图方法 115 其他一些绘图技巧 155.1 图像不显示 155.2 Legend 设置 155.3 Matlab 如何在一个 figure 中添加多个 data cursor 165.4 matlab 可不可以建文件夹? .165.5 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用 Ctrl+c 来中断。 175.6 figure 命令建一个绘图窗口 175.7 注释掉一段程序: 175.8 doc 命令名,打开命令的帮助文档 .175.9 box on %打开图框 .185.10 close all
3、.185.11 Tab 补全 .185.12 cell 模式 .185.13 获取文件列表,批处理 185.14 Ctrl+D 打开子程序 195.15 Tools-Show Dependency Report, .195.16 单元数组的基本操作 195.17 GUI 程序关闭按钮的 callback205.18 同步缩放坐标轴 linkaxeslinkaxes 命令 .205.19 MATLAB 中的字体平滑 .205.20 Set.215.21 可先定义 225.22 视角设定 view(az,el) .225.23 透视与遮挡 225.24 获取当前绘图坐标的指针 h = gca225
4、.25 附件 1:这是什么鬼? .225.26 附件 2 附属命令: .255.27 附件 3 搜索表 271 matlab 画图中线型,颜色及字体的设置 1.1 plot格式plot 格式中选项是指为了区分多条画出曲线的 颜色,线型及标记点而设定的曲线的属性.还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色 MarkerEdgeColor),填充颜色 (MarkerFaceColor)及标记点的大小(MarkerSize) 等其它绘图属性例:x=0:0.1:3*pi;plot(x,sin(x),*m,x,cos(x),+g,LineWidth,2,MarkerEdgeCo
5、lor,y,MarkerSize,5);1.2 图形尺寸和字体的设置:方法:FlieExport Setup,进入如下界面:Properties 一栏中提供四种属性进行设置:选择 size,分别设置 Width,Height,选择相应的单位,进行图形尺寸的设置2.选择 Fonts,勾选“Custom Size”,选中“ Use fixed font size”可以选择固定字体大小,勾选“Custom name” ,选择字体2 matlab 作图标注2.1 坐标轴的标题:title 函数,其调用格式为:title(字符串)-字符串可以写中文Leg:title(biaoti,fontsize,20
6、,color,r)%标题2.2 坐标轴的说明:xlabel 和 ylabel函数,格式:xlabel(字符串) ,ylabel( 字符串)Leg:xlabel(x,fontsize,20,color,r)xlabel(x vaule); 给 x 轴取名字2.3 图形 说明文字:text 和 gtext函数A:text 函数: 按指定位置在坐标系中写出说明文字.格 式为:text(x1, y1, 字符串, 选项)B:gtext 函数:按照 鼠标点按位置写出说明文字.格式为:gtext(字符串)Leg:gtext(y=sin(x) %加标注2.4 在图形中添加图例框:legend 函数。其调用格式
7、为:A.legend(字符串 1, 字符串 2, )-以字符串 1,字符串 2 作为图形标注的图例B.legend(字符串 1, 字符串 2, , pos)-pos 指定图例框显示的位置.2.5 用鼠标点选屏幕上的点:ginput 函数,格式为: x, y, button=ginput(n):其中:n 为所选择点的数;x,y 均为向量,x 为所选 n 个点的横坐标;y 为所选 n 个 点的纵坐标.button 为 n 维向量,是所 n 个点所对应的鼠标键的标号:1-左键;2-中键;3- 右键在坐标轴上任意标上感兴趣的刻度。用 XTick、YTick 、ZTick如:x=0:0.1:10;y=x
8、.2;h=plot(x,y,o,x,y);set(gca,YTick,0,10,25,50,80,99,XTick,0.5,8,10);用 XTickLabel、YTickLabel、ZTickLabel 属性把标记标签从数值改为字符串:如将 y 轴上的值 80 用字符串代替x=0:0.1:10;y=x.2;h=plot(x,y,o,x,y);set(gca,YTickLabel,0|10|25|50|cutoff|99);2.6 使用多个 x轴和 y轴另外可对坐标轴的刻度进行设置,通过点击 刻度 1. 刻度位置对应的是原始数据中值,应与数据的范围相当;2. 刻度标签则是相应刻度位置上显示的内
9、容,可以是数字或者是任意的文字 X 轴刻度位置也可通过如下命令设置: set(gca,xtick,1 2 3) X 轴刻度标签也可通过如下命令设置: set(gca,xTickLabel,a, b, c)XAxisLocation 和 YAxisLocation 属性指定在图形的哪一侧放置 x 轴和 y 轴。如图 3.x1=0:0.01:10;y1=sin(x1);h1=line(x1,y1,Color,r);ax1=gca;set(ax1,XColor,r,YColor,r);ax2=axes(Position,get(ax1,Position),XAxisLocation,top,YAxi
10、sLocation,right,Color,none,XColor,k,YColor,k);x2=x1;y2=cos(x2);h2=line(x2,y2,Color,k,Parent,ax2);2.7 axis对坐标轴的控制axis( xmin xmax ymin ymax zmin zmax)axis 函数的功能丰富,其常常使用的使用方法有:axis equal :纵横坐标轴採用等长刻度axis square:产生正方形坐标系(默觉得矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴axis(0 5 -3 3);/x,y 轴范围3 绘图设置3.1
11、网格设置 :通过 grid on / off 命令显示 / 关闭 网格 通过 grid minor 命令控制网格密度 通过 set(gca, xGrid, off)关闭 x 轴上的网格线,其他类推3.2 曲线设置 可以通过 “Edit Plot” 箭头选中曲线双击进行 线形 颜色 线宽 等设置3.3 在单线图上绘制多重线:有三种办法.A.第一种方法是利用 plot 的多变量方式绘制:plot(x1,y1,x2,y2,.,xn,yn)B.第二种方法也是利用 plot 绘制,但加上 hold on/off 命令的配合:plot(x1,y1)hold onplot(x2,y2)hold offC.第
12、三种方法还是利用 plot 绘制,但代入矩阵4 一些特殊函数的绘图方法正态分布图我们可以用命令 normrnd 生成符合正态分布的随机数normrnd(u,v,m,n)其中,u 表示生成随机数的期望,v 代表随机数的方差运行:a=normrnd(10,2,10000,1);histfit(a)我们可以得到正态分布的统计直方图与其正态分布拟合曲线leg 比较正态分布与平均分布的分布图:yn=randn(30000,1); %正态分布x=min(yn) : 0.2 : max(yn);subplot(121)hist(yn, x)yu=rand(30000,1); %平均分布subplot(122
13、)hist(yu, 25)极坐标图polar 函数用来绘制极坐标图,调用格式为:polar(theta,rho,选项)当中,theta 为极坐标极角,rho 为极径,选项的内容和 plot 函数类似。例:绘制 的极坐标图theta=0:0.01:2*pi;rho=sin(3*theta).*cos(5*theta);polar(theta,rho,r);对数坐标图semilogx(x1,y1,选项 1,x2,y2,选项 2,)semilogy(x1,y1,选项 1,x2,y2,选项 2,)loglog(x1,y1,选项 1,x2,y2,选项 2,)其他的绘图函数在线性直角坐标中,其它形式的图形
14、有条形图、阶梯图、杆图和填充图等,所採用的函数分别为:bar(x,y,选项) 选项在单引號中stairs( x,y,选项)stem(x,y,选项)fill(x1,y1,选项 1,x2,y2,选项 2,)例 5-8:分别以条形图、填充图、阶梯图和杆图形式绘制曲线x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0, 7, 0 ,2);subplot(2,2,2);fill(x,y,r);title(fill(x,y,r);axis(0, 7, 0 ,2);subplot(2,2,3);stairs
15、(x,y,b);title(stairs(x,y,b);axis(0, 7, 0 ,2);subplot(2,2,4);stem(x,y,k);title(stem(x,y,k);axis(0, 7, 0 ,2);5 其他一些绘图技巧5.1 图像不显示在用循环画很多图时,为了减少对内存的占用,可以设置图像不显示,直接保存起来。其实也很简单,就是在 plot 等语句前加上一句:figure(visible,off)。这样画图时就不显示了!5.2 Legend设置当遇到图中某些曲线不需要 legend 时,标注 legend 可能会存在不对应的问题。解决方案如下:每条曲线的绘图命令前用一个参数接受
16、该曲线的句柄,即:h=plot(x,y);在配置 legend 的时候,对应将需要标注 legend 的曲线句柄集中到一个数组即可,如:Legend( h1,h2,h3,curveA,curveB,curveC,)这样一来,legeng 的图中就只标注了 h1h3 这三条曲线的标签另外,可以通过右击 legend,选择“Location” ,设置 legend 在图中的位置,这样一来可以保证 legend 位置的统一性5.3 Matlab如何在一个 figure中添加多个 data cursor 当你选择 data cursor 工具时,按住 alt 键,点左键选择曲线上的点。那你就可以想要多
17、少个显示就要多少个了。5.4 matlab可不可以建文件夹?一直以为它不可以,每次都是乖乖地建好,再让它慢慢往里存数据。其实不然,是我们小瞧了它!在 Matlab 里可以通过 system 这个命令调出 dos 命令,比如:执行语句 system(mkdir step1)就可以在当前目录下建立名为”step1“的文件夹!在实际编程中,可以结合函数exist 使用。比如:if exist(Step1) = 0system(mkdir Step1);end即:先判断当前目录下是否以存在名为 Step1 的子目录(文件夹) ,如果不存在,则建立!Ctrl+C 中断正在执行的操作5.5 如果程序不小心
18、进入死循环,或者计算时间太长,可以在命令窗口中使用 Ctrl+c来中断。5.6 figure命令建一个绘图窗口figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个 figure 窗口时,在命令窗口中执行如 Plot 等命令将覆盖当前 figure 窗口中的对象。所谓的当前 figure 窗口,也就是最后一次查看的窗口(可以用命令 gcf得到)。5.7 注释掉一段程序:%、%。经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。5.8 doc 命令名,打开命令的帮助文档5.9 box on %打开图框5.10 clos
19、e all如果开了多个绘图窗口,用这个命令将它们一起关掉5.11Tab补全对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab 键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。 5.12 cell模式在一个长长的脚本 m 文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell 模式就非常有用了。cell 模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(% )开始一个cell。将输入光标放到一个 cell 中时,背景将变为浅黄色,Ctrl+Enter 执行 cell 中的代码。5.13获
20、取文件列表,批处理MATLAB 内置了一些文件操作命令例如 cd(切换工作目录) ,dir(同 ls,显示目录内文件列表) 等。dir 命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。5.14Ctrl+D打开子程序在 MATLAB 的 Editor 中,将输入光标放到一个子程序名称中间,然后按 Ctrl+D 可以打开该子函数的 m 文件。当然这个子程序要在路径列表中(或在当前工作路径中) 。实际上该快捷键对应右键菜单中“Open Selection”命令。列出依赖函数5.15Tools-Show
21、Dependency Report,在 Editor 菜单中,选择 Tools-Show Dependency Report,可以列出当前 m 文件调用的子程序。如果需要将程序移动到别的电脑上,使用这个工具可以确保不会漏掉一些东西。这个工具也适用于文件夹。5.16单元数组的基本操作清除 cell 中的元素cellname(n1:n2) = ;合并如下的两个 cell 数组a = str1, str2, str3;b = 1:3;c = a(1:2), b, a(3);得到:c = str1 str2 1x3 double str3而 c = a(1:2), b, a(3)则得到 c = 1x2
22、 cell 1x3 double 1x1 cellcell array 本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个 cell,整体作为一个 cell 数组。cell 的两种引用方式a(1) 得到 str1, 因为 a 是一个 cell 数组,所以其中的每一个元素都是一个 cell,而 a1 得到 str1。5.17 GUI程序关闭按钮的 callback为 GUI 窗口右上角的关闭按钮添加回调函数:在 GUIDE 中打开GUI,在没有控件的地方单击,选中整个 figure,右键菜单中选择 View Callbacks - CloseReq
23、uestFcn,m 文件中将自动添加该回调函数,输入代码就可以了。对于复杂的文件,还是用 fscanf 比较方便!格式很随意!5.18同步缩放坐标轴 linkaxeslinkaxes命令可以将一个 figure 中的各个 axes 指定相同的坐标范围,实现各个绘图同步放大、缩小。在缩放一个绘图时,其它也会同步缩放。可以同时关联 x、y 轴,也可以只关联一个坐标轴。5.19MATLAB 中的字体平滑在 File 菜单中打开设置选项( Preferences) ,在 Fonts 中,选择底部的 “Using antialiasing to smooth desktop fonts” ,MATLAB
24、 中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小) 。有衬线字体打开反锯齿后可能会看起来“发虚” 。5.20 Setset(gca,XTick,0 0.1 0.5 1 2);/在 X 轴加指定坐标set(gca,YTick,0 1 2); 给 x 轴标记值set(gca,linewidth,1);/坐标轴粗细set(gca,FontName,Time New Roman,FontSize,5);/坐标轴字体set(gca,Color,g);/坐标轴颜色set(gcf,color,0 0 0);/背景颜色set(gca,ydir,reverse);set(gca,
25、ydir,normal)set(gca,fontsize,15)%改变坐标字体大小set(gca,Fontname,TimesewRoman,FontSize,14,FontWeight,bold,FontAngle,italic) %设置字体为 Times New Roman,字号为 14 号,加粗,斜体set(gca,XMinorTick,on) %设置 x 轴最小刻度set(gca,YMinorTick,on) %设置 y 轴最小刻度set(gca,LineWidth,2.5) %设置坐标轴的粗细set(gca,ticklength,0.025 0.0125); %设置小刻度长度 set
26、(gca,tickdir,out) %将小刻度放在坐标轴外面 set(gca,position,0.15,0.15,0.80,0.80) %设置图形占画布的比例set(gcf,position,0,0,1200,800) %设置画布的大小%set(gcf,FontName,Time New Roman,FontSize,25)set(gca,xcolor,1,0,0,ycolor,0,1,0)%设置 x、y 轴的颜色set(gca,FontSize,50)%设置坐标字体的大小5.21可先定义style=-,-,*,v;%这里定义线形color=jet(4);%这里定义颜色5.22视角设定 vi
27、ew(az,el)az 是方位角,默认为 37.5el 是俯视角,默认为 305.23透视与遮挡hidden on 与 hidden off5.24 获取当前绘图坐标的指针 h = gca5.25附件 1:这是什么鬼?矩阵函数Expm 矩阵指数Expm1 实现 expm 的 M 文件Expm2 通过泰勒级数求矩阵指数Expm3 通过特征值和特征向量求矩阵指数Logm 矩阵对数Sqrtm 矩阵开平方根Funm 一般矩阵的计算泛函非线性数值方法Ode23 低阶法求解常微分方程Ode23p 低阶法求解常微分方程并绘出结果图形Ode45 高阶法求解常微分方程Quad 低阶法计算数值积分Quad8 高阶
28、法计算数值积分Fmin 单变量函数的极小变化Fmins 多变量函数的极小化Fzero 找出单变量函数的零点Fplot 函数绘图多项式函数Roots 求多项式根Poly 构造具有指定根的多项式Polyvalm 带矩阵变量的多项式计算Residue 部分分式展开(留数计算)Polyfit 数据的多项式拟合Polyder 微分多项式Conv 多项式乘法Deconv 多项式除法建立和控制图形窗口Figure 建立图形Gcf 获取当前图形的句柄Clf 清除当前图形Close 关闭图形建立和控制坐标系Subplot 在标定位置上建立坐标系Axes 在任意位置上建立坐标系 Gca 获取当前坐标系的句柄Cla
29、 清除当前坐标系Axis 控制坐标系的刻度和形式Caxis 控制伪彩色坐标刻度Hold 保持当前图形基本 XY 图形Plot 线性图形Loglog 对数坐标图形Semilogx 半对数坐标图形(X 轴为对数坐标)Semilogy 半对数坐标图形(Y 轴为对数坐标)Fill 绘制二维多边形填充图特殊 XY 图形Polar 极坐标图Bar 条形图Stem 离散序列图或杆图Stairs 阶梯图Errorbar 误差条图Hist 直方图Rose 角度直方图Compass 区域图Feather 箭头图Fplot 绘图函数Comet 星点图图形注释Title 图形标题Xlabel X 轴标记Ylabel Y 轴标记Text 文本注释Gtext 用鼠标放置文本Grid 网格线5.26附件 2附属命令:1.Figure 建立图形Gcf 获取当前图形的句柄Clf 清除当前图形Close 关闭图形Text 文本注释Gtext 用鼠标放置文本Grid 网格线plot 绘制二维线性图形和两个坐标轴plot3 绘制三维线性图形和两个坐标轴fplot 在制定区间绘制某函数的图像。 fplot(f ,区域,线型,颜色)loglog 绘制对数图形及两个坐标轴(两个坐标都为对数坐标)semilogx 绘制半对数坐标图形