matlab图像输出设置.docx
《matlab图像输出设置.docx》由会员分享,可在线阅读,更多相关《matlab图像输出设置.docx(19页珍藏版)》请在冰豆网上搜索。
matlab图像输出设置
核心方法:
通过图像设置命令,直接指定图片的大小。
具体操作:
(1)完成画图及相关设置(字体大小、线宽、图例大小也是正常尺寸),
(2)此时WindowStyleis'docked',要改为normal,有两种操作:
1)在Figureproperties——moreproperties中找到
Windowstyle,然后用鼠标改为normal;
2)或者直接用命令:
set(gcf,'windowstyle','normal')
(3)根据排版要求,确定图片的宽高,例如320*320像素,然后使用命令
set(gcf,'Position',[500,300,320,320])
set(gcf,'Units','centimeters','Position',[10010098]);
%figure的position中的[leftbottomwidthheight]是指figure的可画图的部分的左下角的坐标以及宽度和高度。
(4)使用copyfigure将图片输出到Word
1.figure;
2.holdon;
3.set(gca,'YTick',[0:
0.2:
1]);
4.boxoff;
5.set(gca,'YTickLabel',{'matlab1','matlab2','matlab3',...
6. 'matlab4','matlab5','matlab6'})
1.holdon
2.xL=xlim;
3.yL=ylim;
4.plot(xL,[yL
(2),yL
(2)],'k',[xL
(2),xL
(2)],[yL
(1),yL
(2)],'k')
5.boxoff
6.axis([xLyL])
1.t=linspace(0,8,100);
%%%linspace(X1,X2)generatesarowvectorof100linearlyequallyspacedpointsbetweenX1andX2.
linspace(X1,X2,N)generatesNpointsbetweenX1andX2.
2.a1=axes;
%%axesCreateaxesinarbitrarypositions.
axes('position',RECT)opensupanaxisatthespecifiedlocationandreturnsahandletoit.
RECT=[left,bottom,width,height]specifiesthelocationand
sizeofthesideoftheaxisbox,relativetothelower-left
corneroftheFigurewindow,innormalizedunitswhere(0,0)
isthelower-leftcornerand(1.0,1.0)istheupper-right.
3.plot(t,sin(t));
4.xt=get(gca,'xtick');
5.set(gca,'XTick',[],'XColor','w');
6.xL=xlim;
7.p=get(gca,'Position');
8.boxoff;
1.figure
2.a2=axes('Position',p+[0,p(4)/2,0,-p(4)/2]);%确定坐标位置,p为上述
3.xlim(xL);%定义x轴坐标
4.boxoff;
5.set(gca,'XTick',xt,'Color','None','YTick',[]);
简单点儿说吧:
xtick是刻度(小竖线);xticklabel刻度值(竖线下面的数值)。
set(gca,'xtick',-pi:
pi/2:
pi)这句的意思是:
手动设置x轴刻度,-pi到pi之间,每间隔pi/2,划一小竖线;
set(gca,'xticklabel',{'-pi','-pi/2','0','pi/2','pi'})这句的意思是:
给刚才划上的小竖线,标个数值。
如果你把它改成:
set(gca,'xticklabel',{'a','b','c','d','e'}),那么那小竖线下就变成:
a,b,c,d,e了。
希望对你有用!
findobj
findobj:
特殊属性的图形对象
语法:
1.findobj:
findobj返回根对象的句柄和所有子对象(findobjreturnshandlesoftherootobjectandallitsdescendantswithoutassigningtheresulttoavariable.)
2.h=findobj:
返回根对象的句柄和所有子对象
3.h=findobj('PropertyName',PropertyValue,...)
返回所有属性名为‘PropertyName’,属性值为'PropertyValue'的图形对象的句柄。
可以指定多个属性/值对。
4.h=findobj('PropertyName',PropertyValue,'-logicaloperator',PropertyName',PropertyValue,...)
-logicaloperator可以取值:
-and
-or
-xor
-not
等
5.h=findobj('-regexp','PropertyName','regexp',...)
属性名可以使用正则表达式
6.h=findobj('-property','PropertyName')
如果存在‘PropertyName’这个属性名,就返回此图形句柄
7.h=findobj(objhandles,...)
限制搜索范围为objhandles和他们的子图中
8.h=findobj(objhandles,'-depth',d,...)
指定搜索深度,深度参数'd'控制遍历层数,d为inf表示遍历所有层,d为0等同d='flat'
9.h=findobj(objhandles,'flat','PropertyName',PropertyValue,...)
'flat'限制搜索范围只能是当前层,不能搜索子图。
如果句柄指向一个不存在的图形,findobj返回一个错误。
findobj正确匹配任何合法属性值,例如:
findobj('Color','r')
找到所有color值为红的对象。
为了寻找满足指定条件的额handle对象,我们可以使用handle.findobj。
例子:
在当前坐标下查找所有直线对象:
h=findobj(gca,'Type','line') %gca为当前坐标的句柄
查找Label属性设为'foo'和String设为'bar'的所有对象:
h=findobj('Label','foo','-and','String','bar');
查找String不为'foo'也不为'bar'的所有对象:
h=findobj('-not','String','foo','-not','String','bar');
h=findobj('String','foo','-and','Tag','buttonone',...
'-and','-not',{'Color','red','-or','Color','blue'})
FindallobjectsforwhichyouhaveassignedavaluetotheTagproperty(thatis,thevalueisnottheemptystring''):
h=findobj('-regexp','Tag','[^'']')
FindallchildrenofthecurrentfigurethathavetheirBackgroundColorpropertysettoacertainshadeofgray([.7.7.7]).Thisstatementalsosearchesthecurrentfigureforthematchingpropertyvaluepair.
h=findobj(gcf,'-depth',1,'BackgroundColor',[.7.7.7])
Matlab正则表达式
正则表达式在处理字符串及文本时显得十分方便,在perl,python等脚本语言,以及java,.net等平台上都支援正则表达式。
事实上,在MATLAB中也提供了正则表达式的支持。
主要包含三个常用的函数:
regexp(),regexpi(),regexprep()。
其中regexp()用来匹配正则表达式,regexpi()完成类似的功能,但是忽略字符串的大小写,regexprep()则按照指定的pattern完成替换功能。
MATLAB正则表达式主要包含以下特殊匹配符号:
.匹配任何单个字符(包括空白字符)
[abc]匹配括号里包含的任何单个字符,a或b或c
[^abc]匹配括号中字符以外的任何单个字符,任何除a和b和c外的字符
[a-x]匹配a-x范围内的任何单个字符
\s匹配任何空白字符,等效于[\f\n\r\t\v]
\S匹配任何非空白字符,等效于[^\f\n\r\t\v]
\w匹配任何字母,数字或下划线字符,对于英文字符集,等效于[a-zA-Z_0-9]
\W匹配任何除了字母,数字或下划线以外的字符,对于英文字符集,等效于[^a-zA-Z_0-9]
\d匹配任何数字,等效于[0-9]
\D匹配任何数字以外的字符,等效于[^0-9]
分组和捕获
(expr)分组并捕获
(?
:
expr)分组但不捕获
expr1|expr2匹配expr1或者expr2
非匹配操作符(常用于在正则表达式内添加注释)
(?
#blabla)blabla是注释内容
占位符
^字符串起始
$字符串结尾
\<单词起始
\>单词结尾
环视
(?
=expr)从当前位置向前看(字符串向右的方向),测试是否匹配expr
(?
!
expr)从当前位置向前看(字符串向右的方向),测试是否不匹配expr
(?
<=expr)从当前位置向后看(字符串向左的方向),测试是否匹配expr
(?
expr)从当前位置向后看(字符串向左的方向),测试是否不匹配expr
定义数量
expr{m,n}至少m次,最多n次
expr{m,}至少m次,没有上限
expr{n}正好n次
expr?
出现0次或1次
expr*出现任意次(可以是0次)
expr+出现1次或更多次
捕获
(expr)捕获匹配得到的字符串
\N匹配第N次捕获的字符串
$N引用第N次捕获的字符串
(?
(N)s1|s2)如果存在第N次捕获的字符串,则匹配s1,否则匹配s2
给捕获命名
(?
expr)给捕获的字符串起名字叫name
\k匹配名叫name的被捕获的字符串
$引用名叫name的被捕获字符串
(?
(name)s1|s2)我想您应该知道是什么意思
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。
通常可以用他来设定一些默认值,如下面的函数。
例子,函数test1的功能是输出a和b的和。
如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
functiony=test1(a,b)
ifnargin==0
a=0;b=0;
elseifnargin==1
b=0;
end
y=a+b;
Matlabset函数
1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。
例如,LineStyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-'、':
'、'-.'、'--'或'none'。
2.属性的操作
set函数的调用格式为:
set(句柄,属性名1,属性值1,属性名2,属性值2,…)
例子:
clear
x=0:
0.2:
12;
y1=bessel(1,x);
y2=bessel(2,x);
y3=bessel(3,x);
h=plot(x,y1,x,y2,x,y3);
set(h,{'LineWidth'},{2;5;8})%set(h,{'LineWidth'},{2})==set(h,'LineWidth',2),将所有线宽设置为2
set(h,{'Color'},{'r';'g';'b'},{'LineStyle'},{'--';':
';'-.'})%设置颜色和线宽
axis([012-0.51])%设置坐标轴范围
gridon
X=0:
1:
12;
Y=-0.5:
0.25:
1;
set(gca,'xtick',X,'ytick',Y)%设置网格的显示格式,gca获取当前figure的句柄
set(xlabel('Time'),'FontSize',12,'Color','r')
y=ylabel('Amplitude');
set(y,'FontSize',12,'Color','g')
legend(h,'First','Second','Third')%添加图例
title('BesselFunctions')%添加标题
[y,ix]=min(y1);%找到y1的最小值以及改值的下标,赋给y和ix
text(x(ix),y,'FirstMin\rightarrow','HorizontalAlignment','right')%插入文本
具体可改哪些属性值见贴
这两天在看句柄式图形方面的东西,以下是我在看书过程中整理的学习笔记,比较详细的介绍了句柄以及与其密切相关的各种图形对象和它们的属性。
希望能对初学Matlab界面设计的朋友们有所帮助。
GUI学习笔记:
句柄式图形常用函数:
(1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值
(2)a=get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。
(3)a=get(0,'factory')返回所有能由用户设置的属性的默认定义值。
(4)a=get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...)返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。
a=get(0,'factoryFigureColor')返回Figure对象的Color属性值。
(5)a=get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...)返回句柄值为h的对象指定属性的默认值。
如“DefaultFigureColor”。
(6)a=get(h,'default')列出h对象的所有属性的默认属性值
(7)a=set(h)返回句柄值h所指定的图形对象的所有属性名称对应的可设置属性值,a为结构数组,存储对象的属性名称,其字段值为相对应的属性值。
属性值中用{}括起来的表示默认值。
(8)set(h,a)使用指定的属性值来设置由句柄值h所指定的对象属性,a为结构数组,其字段名称为对象的属性名称,字段值为相对应的属性值。
(9)a=set(0,'factory')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。
(10)a=set(0,'FactoryObjectTypePropertyName')返回所有对象中指定的属性名称FactoryObjectTypePropertyName的所有可能的属性值。
(11)a=set(h,'属性名','属性值')设置句柄值为h的对象的与属性名对应的属性值。
(12)set(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName2',...)对句柄值为h的对象设置特定属性名称的属性默认值。
(13)H=findobj;返回Root对象与其所有子对象的句柄值
(14)H=findobj(h);返回h变量的句柄值
(15)H=findobj(’属性名称‘,’属性值‘);依据对象的属性名称和属性值找出匹配的对象句柄值。
(16)H=findobj(ObjectHandles,’属性名称‘,’属性值‘);根据限定的对象列表找出与对象的属性名称和属性值匹配的对象句柄值
(17)gcf返回当前Figure对象的句柄值
gca返回当前axes对象的句柄值
gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中
Figure对象的属性篇
(1).^是矩阵每个元素的幂乘,^是数的幂乘。
(2)set(handle)列出句柄值为handle的对象的所有属性
get(handle)除列出上述属性外,还列出可以设置的属性
reset(handle)将所有属性改为默认值
delete(handle)删除句柄值为handle的图形对象
(3)利用set(handle,‘属性名称’)获得句柄值为handle的对象的属性名称下所有可设置的属性值
set(gcf,'units):
得到[inches|centimeters|normalized|points|{pixels}|characters],其中,大括号中是默认值
(4)clfreset;将窗口关闭,并重新设置其属性为默认值。
(5)Closerequestfcn,有效值为字符串或函数句柄(前加@)
当关闭绘图窗口或离开Matlab时,就会定义Closerequestfcn定义的函数
(6)createfcn,当Matlab建立一个对象时(如为figure对象,即打开一个绘图窗口),就会触发createfcn所定义的callback程序。
如set(0,'defaultfigurecreatefcn','set(gcbo,''integerhandle'',''off'')');即设置了根对象的默认值,使每次建立figure对象时,都会指定一个非整数的句柄值。
(在用户未指定句柄值时)
(7)将当前窗口中在键盘上按下的按键名显示出来。
set(gcf,'keypressfcn','get(gcf,''currentcharacter'')')
(8)color有效值为colorspec
colorspec表:
RGB简称
[110]y_yellow
[101]m_magenta
[011]c_cyan
[100]r_red
[010]g_green
[001]b_blue
[111]w_white
[000]k_black
(9)linspace(a,b,c):
a初始b结束c线性分段次数linspace(a,b)则默认100次
(10)CurrentObject:
有效值为图形对象句柄值:
返回绘图窗口内当前被鼠标选取的对象的句柄值
(11)currentPoint:
有效值[x-坐标,Y-坐标]返回绘图窗口中最后单击鼠标的位置,用get(gcf,'currentpoint')就会返回当前在窗口中单击鼠标的位置
(12)DeleteFcn:
有效值:
字符串或函数句柄,删除对象(这里为figure)时会触发Deletefcn所定义的Callback程序。
(13)Dockcontrols:
有效值为on/off,默认值on,控制窗口的嵌入效果是否可用。
(14)Hittest:
有效值on/off,决定能否用鼠标选取对象为当前对象。
(15)Integerhandle:
有效值on/off,决定Figure对象句柄值的类型为整数或浮点小数。
(16)Interruptible:
有效值on/off,执行过程中需要中断程序而优先执行其他程序时要设该属性为on。
即Interrupptible属性是用以控制当Callback执行时是否能被其他事件(如此时鼠标按下其他控制对象)而中断,on是会中断,off时会执行完当前Callback,再去执行其他Callback。
(17)Keypressfcn:
有效值为字串或函数句柄。
当用户在figure窗口中按下键盘的任意键时,就会执行Keypressfcn所定义的Callback程序。
figure('keypressfcn','fprintf(''当前按下键盘上的%c键\n'',get(gcf,''currentcharacter''))')在这个figure窗口中按下键盘上的按键时就会立即返回对应的字符,依据这个效果就可以决定当字符键被按下时所要执行的操作。
当这个属性指定的值是一个函数句柄时,Matlab就会将这个函数视为一个结构,包含下列字段——character(以当前键盘上按下的按键显示的字符来当作结果),modifier(包含一个或多个识别键盘上按下按键字符名称的细胞数组(如Ctrl,Alt,Shift等),key(显示被按下的键)。
(18)WindowButtonDownFcn:
有效值为字符串或函数句柄
当鼠标在绘图窗口内按下鼠标任意键时,将触发WindowButtonDownFcn所定义的Callback以产生相对应的操作。
(19)WindowButtonMotionFcn:
有效值为字符串或函数句柄
当鼠标在绘图窗口内按住鼠标任意键移动,将触发WindowButtonMotionFcn所定义的Callback以产生相对应的操作。
(20)WindowButtonUpFcn:
有效值为字符串或函数句柄
当鼠标在绘图窗口内释放鼠标任意键时,将触发WindowButtonUpFcn所定义的Callback以产生相对应的操作。
(21)CurrentAxes有效值为当前坐标轴的句柄值,返回当前的坐标轴句柄值。
假设某坐标轴句柄值为a_h,可以使用axes(a_h)或set(gcf,'currentaxes',a_h)这两种方式,制定句柄值为a_h的坐标轴为当前坐标轴。
(22)CurrentCharacter:
有效值为任意字符,返回用户在绘图窗口中最后输入的一个字符,即刚在键盘上按下的字符键将存储到Currentcharacter中,一般于Keyppressfcn合用。
(23)Currentob