《Matlab自编myfigure函数-快速输出figure图形曲线数据(原创).docx》由会员分享,可在线阅读,更多相关《Matlab自编myfigure函数-快速输出figure图形曲线数据(原创).docx(5页珍藏版)》请在课桌文档上搜索。
1、Matlab自编myllgure函数,快速输出figure图形曲线数据1.X我们知道MatIab作图功能特别强大,但缺憾的是,Matlab在图形处理方面也有两个很大的不足,其一,Matlab保存的Figure图形,不能像origin图形一样,携带数据并可以在wordpptexce里面由新编轨:其:,MaUab没有供应快捷方式使我们能快速地从Figure图形中获褥某特定曲线的数据,史制或保存,尽管在一般状况下,我们在Workspace中有变贵,但是也显得很不便利.对于第一个不足.由于Matlab的固有属性,我们无法解决,其次个不足,我的可以Fl编函数解诀.以下,本人新编了一个Figure函数此函
2、数可对已建立的Figurem,添加两项一纸菜单“输出数据”和“坐标范围”并在一级菜单下各有几项二级菜单,其功能为1.对Figure图形中的数据进行都国和保存输出的数据类型可以为xs,txt,或者将数据就新返PI到新作空间:2.无须打开fure属性,呻可快速对figure图形的坐标范用进行设置,运用方法;将后面:色代码全部配制到m文件,并保存为“myfigure”,至于当前路径下,领情奉献,假如觉得有参考或运用价佰,请下载和评分哦示例;X=IinSPaCe10,2*pi,lO0);yl=sin(x);y2=cos(x);figure,plot(,yl,r.-,x,y2,b*)XlabeICxl1
3、.yIabeI(V)myfigre%运行本段代码,将得到图1图1运行mfigure对已建的Figure添加功能菜单,见图中绿色椭圆部分I坐标范Bl设置,如图2图2通过单击“生标范用”菜单下的坐标设置对坐标通国快速设置2数据,出(至excel或txt或WOrkSPaCe),如图3出的数据格式,为若干列,一条曲线占两列,分别为,y,多条则为XMX,y傅vn.I-&an*图3单击-数据输出“K的输出至excel进行数据输出,3杳看皴据.留意,若FigUre中有多条曲线,且数据长度不一样,用不能一次性出数据,而是应当,先单击所需曲线,然后,在“数据出”菜单下单击“查牙敷福”,得到数据衰,如图4.用ct
4、rl+c复制效据至excel中,从而完成出图4选一曲线,并单击“数据输出”下的杳看数据,可得到数据表格,然后复制至excel母下为myfigure代码functionmyfigure%lX,2014.01f=gcf;h=findobj(V1.aber,数据输出力ifisempty(三)hml=uimenu(Parentf1.abel:数据输出);UjmeMhm1.aberJ杳看数据;“*callbackRead_data);UimenU(hml;1.aber尚出至txt,r.callback,Save_Strain);uimenu(hml1.abe,iIli至excel;.,callback0
5、pexcel);UimenU(hml;1.aber输出至WPI.,callback,OpWP);hm2三uimenu(,ParentX,1.abe7*l-v6t);uimenu(hm21.abe坐标二.callback,uimenu(hm21.abe,Y坐标,callbackzYJim);endfunctionSave_Straln(Vjh-1.ine=get(gcaChildre|1;Xdata-cell2mat(get(h-1.inez,data);Ydata=cell2mat(get(h-1.ine4Ydata,);Ydata=fliud(Ydata);Data=(XdatajYdata
6、);1.三size(Data,l);formt=repmat(1%f1);%asslgn(base7DataData)filename,pathname)=uiputfileC*.txt,);ifisequaI(IiIenamerO)fid=fopen(pathnamezfilenamew,);fprintf(fld4frmtrn,1.Data);a=fclose(fid);ifa三=Oh=helpdlg(保存胜利);pause(0.5)close(三)endendfunctionOpexceI(T)h-,1.ine三get(gcaChildren);Xdata=cell2mat(get(h-
7、1.ine,data,);Ydata=cell2mat(get(hlie4,Ydata,);Ydata=Aipud(Ydata);Data=Xdata;Ydata;filename,athamej=uiputfle(,*.xls,);ifisequaHfiIenamerO)xlsw11te(pathnameffiIeamefData,)h=helpdlg(,保存胜砒pause(0.5)dose(三)endfunctionOPWP(T)h-1.ie=get(gcaChildren,);Xdata=cell2mat(get(h3iezdata);Ydata=cell2mat(get(h-1.ie4
8、Ydata,);Ydata=Aipud(Ydata);Data=(XdatajYdata);assign(,base7DataData)h=helpdl前己输出至Matlab匚作空间!上pause(0.5)close(三)functionRea1.data(,一)Xdata=cell2mat(get(gcor(data,);Ydata-cell2mat(get(gco4Vdata,);Xdata=Xdata,;Ydata=Ydata*;data=(XdatarYdata);f三figure(,NumberTitieoff/MenubarVnone);uitable(,ParetzfData,r
9、data);functionXJim(,)PrOmPtu起始值。终止值);djite=请输入参数;numjines=l;def=,0,.,10,;siz=inputdlg(promptrdlg-title,numjines,def);ifisemptytsiz)slzl=str2doublesizl);siz2=str2doublesiz(2);xlim(sizlsiz2)endfunctionYJim(*)PromPt起始值。终止值);dJhle=请输入参数;numjines=l;def=,010);siz=inputdlg(promptrdlg_title,numJines,def);ifisempty(siz)s21str2doulleslz(l);siz2=str2doublesiz(2);ytim(sizlsiz2)end