Matlab图形的编辑含绘图修改的奥义.docx
《Matlab图形的编辑含绘图修改的奥义.docx》由会员分享,可在线阅读,更多相关《Matlab图形的编辑含绘图修改的奥义.docx(44页珍藏版)》请在冰豆网上搜索。
Matlab图形的编辑含绘图修改的奥义
1matlab 画图中线型,颜色及字体的设置
1.1plot格式
plot格式中选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性
例:
x=0:
0.1:
3*pi;
plot(x,sin(x),'*m',x,cos(x),'+g','LineWidth',2,'MarkerEdgeColor','y','MarkerSize',5);
1.2图形尺寸和字体的设置:
方法:
Flie—ExportSetup,进入如下界面:
Properties一栏中提供四种属性进行设置:
选择size,分别设置Width,Height,选择相应的单位,进行图形尺寸的设置
2.选择Fonts,勾选“CustomSize”,选中“Usefixedfontsize”可以选择固定字体大小,勾选“Customname”,选择字体
2matlab作图标注
2.1坐标轴的标题:
title函数,
其调用格式为:
title('字符串')------字符串可以写中文Leg:
title('biaoti','fontsize',20,'color','r')%标题
2.2坐标轴的说明:
xlabel和ylabel函数,
格式:
xlabel('字符串'),ylabel('字符串')Leg:
xlabel('x','fontsize',20,'color','r')
xlabel('xvaule');给x轴取名字
2.3图形说明文字:
text和gtext函数
A:
text函数:
按指定位置在坐标系中写出说明文字.格式为:
text(x1,y1,'字符串','选项')B:
gtext函数:
按照鼠标点按位置写出说明文字.格式为:
gtext('字符串')Leg:
gtext('y=sin(x)')%加标注
2.4在图形中添加图例框:
legend函数。
其调用格式为:
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.^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.刻度标签则是相应刻度位置上显示的内容,可以是数字或者是任意的文字
X轴刻度位置也可通过如下命令设置:
set(gca,'xtick',[123])
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','YAxisLocation','right','Color','none','XColor','k','YColor','k');
x2=x1;
y2=cos(x2);
h2=line(x2,y2,'Color','k','Parent',ax2);
2.7axis对坐标轴的控制
axis([xminxmaxyminymaxzminzmax])
axis函数的功能丰富,其常常使用的使用方法有:
axisequal:
纵横坐标轴採用等长刻度
axissquare:
产生正方形坐标系(默觉得矩形)
axisauto:
使用默认设置
axisoff:
取消坐标轴
axison:
显示坐标轴
axis([05-33]);//x,y轴范围
3绘图设置
3.1网格设置:
通过gridon/off命令显示/关闭网格
通过gridminor命令控制网格密度
通过set(gca,’xGrid’,’off’)关闭x轴上的网格线,其他类推
3.2曲线设置
可以通过“EditPlot”箭头选中曲线双击进行线形颜色线宽等设置
3.3在单线图上绘制多重线:
有三种办法.
A.第一种方法是利用plot的多变量方式绘制:
plot(x1,y1,x2,y2,...,xn,yn)
B.第二种方法也是利用plot绘制,但加上holdon/off命令的配合:
plot(x1,y1)
holdon
plot(x2,y2)
holdoff
C.第三种方法还是利用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)
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,…)
其他的绘图函数
在线性直角坐标中,其它形式的图形有条形图、阶梯图、杆图和填充图等,所採用的函数分别为:
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(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.2Legend设置
当遇到图中某些曲线不需要legend时,标注legend可能会存在不对应的问题。
解决方案如下:
每条曲线的绘图命令前用一个参数接受该曲线的句柄,即:
h=plot(x,y);
在配置legend的时候,对应将需要标注legend的曲线句柄集中到一个数组即可,如:
Legend([h1,h2,h3],…
‘curveA’,…
‘curveB’,…
‘curveC’,…)
这样一来,legeng的图中就只标注了h1~h3这三条曲线的标签
另外,可以通过右击legend,选择“Location”,设置legend在图中的位置,这样一来可以保证legend位置的统一性
5.3Matlab如何在一个figure中添加多个datacursor
当你选择datacursor工具时,按住alt键,点左键选择曲线上的点。
那你就可以想要多少个显示就要多少个了。
5.4matlab可不可以建文件夹?
一直以为它不可以,每次都是乖乖地建好,再让它慢慢往里存数据。
其实不然,是我们小瞧了它!
在Matlab里可以通过system这个命令调出dos命令,比如:
执行语句system('mkdirstep1')就可以在当前目录下建立名为”step1"的文件夹!
在实际编程中,可以结合函数exist使用。
比如:
ifexist('Step1')==0
system('mkdirStep1');
end
即:
先判断当前目录下是否以存在名为Step1的子目录(文件夹),如果不存在,则建立!
Ctrl+C中断正在执行的操作
5.5如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。
5.6figure命令建一个绘图窗口
figure可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。
当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。
所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。
5.7注释掉一段程序:
%{、%}。
经典方法是用if0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。
5.8doc命令名,打开命令的帮助文档
5.9boxon%打开图框
5.10closeall
如果开了多个绘图窗口,用这个命令将它们一起关掉
5.11Tab补全
对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。
当然,只在命令窗口中有效。
5.12cell模式
在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。
cell模式相当于将其中的代码拷贝到命令窗口中运行。
两个%后接一个空格(%%)开始一个cell。
将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。
5.13获取文件列表,批处理
MATLAB内置了一些文件操作命令
例如cd(切换工作目录),dir(同ls,显示目录内文件列表)等。
dir命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。
如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。
5.14Ctrl+D打开子程序
在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。
当然这个子程序要在路径列表中(或在当前工作路径中)。
实际上该快捷键对应右键菜单中“OpenSelection”命令。
列出依赖函数
5.15Tools->ShowDependencyReport,
在Editor菜单中,选择Tools->ShowDependencyReport,可以列出当前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' [1x3double] 'str3'}
而c={a(1:
2),b,a(3)}
则得到c= {1x2cell} [1x3double] {1x1cell}
cellarray本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个cell,整体作为一个cell数组。
cell的两种引用方式
a
(1)得到{'str1'},因为a是一个cell数组,所以其中的每一个元素都是一个cell,
而a{1}得到'str1'。
5.17GUI程序关闭按钮的callback
为GUI窗口右上角的关闭按钮添加回调函数:
在GUIDE中打开GUI,在没有控件的地方单击,选中整个figure,右键菜单中选择ViewCallbacks->CloseRequestFcn,m文件中将自动添加该回调函数,输入代码就可以了。
对于复杂的文件,还是用fscanf比较方便!
格式很随意!
5.18同步缩放坐标轴linkaxeslinkaxes命令
可以将一个figure中的各个axes指定相同的坐标范围,实现各个绘图同步放大、缩小。
在缩放一个绘图时,其它也会同步缩放。
可以同时关联x、y轴,也可以只关联一个坐标轴。
5.19MATLAB中的字体平滑
在File菜单中打开设置选项(Preferences),在 Fonts 中,选择底部的“Usingantialiasingtosmoothdesktopfonts”,MATLAB中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小)。
有衬线字体打开反锯齿后可能会看起来“发虚”。
5.20Set
set(gca,'XTick',[00.10.512]);//在X轴加指定坐标
set(gca,'YTick',[012]);给x轴标记值
set(gca,'linewidth',1);//坐标轴粗细
set(gca,'FontName','TimeNewRoman','FontSize',5);//坐标轴字体
set(gca,'Color','g');//坐标轴颜色
set(gcf,'color',[000]);//背景颜色
set(gca,'ydir','reverse');
set(gca,'ydir','normal')set(gca,'fontsize',15)%改变坐标字体大小
set(gca,'Fontname','TimesewRoman','FontSize',14,'FontWeight','bold','FontAngle','italic')%设置字体为TimesNewRoman,字号为14号,加粗,斜体
set(gca,'XMinorTick','on')%设置x轴最小刻度
set(gca,'YMinorTick','on')%设置y轴最小刻度
set(gca,'LineWidth',2.5)%设置坐标轴的粗细
set(gca,'ticklength',[0.0250.0125]);%设置小刻度长度
set(gca,'tickdir','out')%将小刻度放在坐标轴外面
set(gca,'position',[0.15,0.15,0.80,0.80])%设置图形占画布的比例
set(gcf,'position',[0,0,1200,800])%设置画布的大小
%set(gcf,'FontName','TimeNewRoman','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视角设定view(az,el)
az是方位角,默认为37.5
el是俯视角,默认为30
5.23透视与遮挡
hiddenon与hiddenoff
5.24获取当前绘图坐标的指针h=gca
5.25附件1:
这是什么鬼?
矩阵函数
Expm矩阵指数
Expm1实现expm的M文件
Expm2通过泰勒级数求矩阵指数
Expm3通过特征值和特征向量求矩阵指数
Logm矩阵对数
Sqrtm矩阵开平方根
Funm一般矩阵的计算
泛函——非线性数值方法
Ode23低阶法求解常微分方程
Ode23p低阶法求解常微分方程并绘出结果图形
Ode45高阶法求解常微分方程
Quad低阶法计算数值积分
Quad8高阶法计算数值积分
Fmin单变量函数的极小变化
Fmins多变量函数的极小化
Fzero找出单变量函数的零点
Fplot函数绘图
多项式函数
Roots求多项式根
Poly构造具有指定根的多项式
Polyvalm带矩阵变量的多项式计算
Residue部分分式展开(留数计算)
Polyfit数据的多项式拟合
Polyder微分多项式
Conv多项式乘法
Deconv多项式除法
建立和控制图形窗口
Figure建立图形
Gcf获取当前图形的句柄
Clf清除当前图形
Close关闭图形
建立和控制坐标系
Subplot在标定位置上建立坐标系
Axes在任意位置上建立坐标系Gca获取当前坐标系的句柄
Cla清除当前坐标系
Axis控制坐标系的刻度和形式
Caxis控制伪彩色坐标刻度
Hold保持当前图形
基本X—Y图形
Plot线性图形
Loglog对数坐标图形
Semilogx半对数坐标图形(X轴为对数坐标)
Semilogy半对数坐标图形(Y轴为对数坐标)
Fill绘制二维多边形填充图
特殊X—Y图形
Polar极坐标图
Bar条形图
Stem离散序列图或杆图
Stairs阶梯图
Errorbar误差条图
Hist直方图
Rose角度直方图
Compass区域图
Feather箭头图
Fplot绘图函数
Comet星点图
图形注释
Title图形标题
XlabelX轴标记
YlabelY轴标记
Text文本注释
Gtext用鼠标放置文本
Grid网格线
5.26附件2附属命令:
1.
Figure建立图形
Gcf获取当前图形的句柄
Clf清除当前图形
Close关闭图形
Text文本注释
Gtext用鼠标放置文本
Grid网格线
plot绘制二维线性图形和两个坐标轴
plot3绘制三维线性图形和两个坐标轴
fplot在制定区间绘制某函数的图像。
fplot(‘f’,区域,线型,颜色)
loglog绘制对数图形及两个坐标轴(两个坐标都为对数坐标)semilogx绘制半对数坐标图形
semilogy绘制半对数坐标图形
2、线型:
颜色线型
y黄色.圆点线v向下箭头
g绿色-.组合>向右箭头
b蓝色+点为加号形<向左箭头
m红紫色o空心圆形p五角星形
c蓝紫色*星号h六角星形
w白色.实心小点holdon添加图形
r红色x叉号形状gridon添加网格
k黑色s方形-实线
d菱形--虚线^向上箭头
3、可以用subplot(3,3,1)表示将绘图区域分为三行三列,目前使用第一区域。
此时如要画不同的图形在一个窗口里,需要holdon。
5.27附件3搜索表
Aa
abs绝对值、模、字符的ASCII码值
acos反余弦
acosh反双曲余弦
acot反余切
acoth反双曲余切
acsc反余割
acsch反双曲余割
align启动图形对象几何位置排列工具
all所有元素非零为真
angle相角
ans表达式计算结果的缺省变量名
any所有元素非全零为真
area面域图
argnames函数M文件宗量名
asec反正割
asech反双曲正割
asin反正弦
asinh反双曲正弦
assignin向变量赋值
atan反正切
atan2四象限反正切
atanh反双曲正切
autumn红黄调秋色图阵
axes创建轴对象的低层指令
axis控制轴刻度和风格的高层指令
Bb
bar二维直方图
bar3三维直方图
bar3h三维水平直方图
barh二维水平直方图
base2decX进制转换为十进制
bin2dec二进制转换为十进制
blanks创建空格串
bone蓝色调黑白色图阵
box框状坐标轴
breakwhile或for环中断指令
brighten亮度控制
Cc
capture(3版以前)捕获当前图形
cart2pol直角坐标变为极或柱坐标
cart2sph直角坐标变为球坐标
cat串接成高维数组
caxis色标尺刻度
cd指定当前目录
cdedit启动用户菜单、控件回调函数设计工具
cdf2rdf复数特征值对角阵转为实数块对角阵
ceil向正无穷取整
cell创建元胞数组
cell2struct元胞数组转换为构架数组
celldisp显示元胞数组内容
cellplot元胞数组内部结构图示
char把数值、符号、内联类转换为