matlabgui设计总结.doc

上传人:jian****018 文档编号:8433328 上传时间:2020-03-29 格式:DOC 页数:9 大小:51KB
返回 下载 相关 举报
matlabgui设计总结.doc_第1页
第1页 / 共9页
matlabgui设计总结.doc_第2页
第2页 / 共9页
matlabgui设计总结.doc_第3页
第3页 / 共9页
点击查看更多>>
资源描述
1 7以上版本的matlab,控件pushbutton背景颜色修改以后并没有什么明显效果,只是按钮的边缘显示为所设置的背景颜色。 2 凡是在属性对话框Property Inspector中可以设置的属性,都可以在其对应的m文件中使用set(.)函数来设置3每个控件的句柄都可以通过handles.tagname来调用(tagname是所使用的控件的tagname)4控件Edit Text不会自动生成Creatfucntion,只有回调函数callback function 5. 控件Static Text也不会自动生成CreatFunction和CallbackFunction,但是可以通过它的句柄handles.tag,对其属性进行修改,例如让其显示一些数字,就可以这么设: set(handles.show,string,num2str(t); 其中handles.show是一个Static Text控件的句柄6从控件Edit Text中读取输入的数据,使用函数: str2num(get(handles.x1_trn,string) 其中handles.x1_trn是一个Edit Text的句柄7若想在界面打开的时候显示一些东西或者执行一些动作,可以将程序写在函数OpeningFcn内。8关于显示图片,如下例:A=imread(trn.bmp);%读取图片trn.bmp的信息,存放在A中,此处该图片是与本函数存放在同一根目录下的,若不是,那么需要把图片的完整路径写出来,例如d:pictrn.bmpB=imread(stb.bmp);%读取图片stb.bmp的信息,存放在A中axes(handles.axes1);%指定显示图片的坐标系,handles.axes1为其句柄imshow(A);%显示图片trn.bmp;axes(handles.axes2); %指定显示图片的坐标系,handles.axes1为其句柄imshow(B);%显示图片stb.bmp显示图片还可以用函数image(),与函数imshow区别在于,image是将图片当作数据来处理的,会显示坐标系,刻度等等,而imshow只是显示图片9关于global的用法! Global用来声明变量的通用,有点像C语言中的全局变量,如果要想将变量a声明为global型的,那么在所有定义和使用a的函数中都要声明:global a;还有就是要使用global变量的函数都必须在同一根目录下。 10要想在一个m文件中调用另外一个m文件,只需将该文件存放在同一根目录下,然后直接在前一m文件中写下要调用的m文件的名字即可。MATLAB GUI编程中几个有用的程序段1、 启动% 获取当前文件所在路径currPath = fileparts(mfilename(fullpath);% 切换工作路径到当前位置cd(currPath);% 判断所用操作系统if computer = PCWIN % MATLAB版本号 v = version; if v(1)=7 warndlg (Only run in matlab 7.x(R14.x); returnelse % 添加当前路径下的所有子目录 addpath(genpath(pwd); addpath(genpath(currPath); endend2、 在GUI中使用Axes控件% 1.删除所有画线及对应图例% 查找Axes控件中的画线sameLines = findobj(type,line);% 逐一删除这些画线 for i = 1 :length(sameLines) delete(sameLines(i)end% 获取Axes控件中的图例(由于画线全部被删除,因此为空)lgStr = get(legend(handles.ResultsAxes), String);% 重新设置图例(为空) legend(handles.ResultsAxes,lgStr);% 2.添加画线% 获取原来的图例lgStr = get(handles.hLegend, String);% 设置下一个画线为添加方式set(handles.ResultsAxes, Nextplot, add);% 指定要画线的Axesaxes(handles.ResultsAxes);% 画线plot(distance_target, -r)% 添加图例handles.hLegend = legend(handles.ResultsAxes, lgStr,目标距离);% 3.删除某一画线% 所删除画线对应的数据为distance_target,获取它的句柄sameLines = findobj(type,line,YData, distance_target);% 删除画线 if isempty(sameLines) delete(sameLines);end% 获取原有的图例lgStr = get(legend(handles.ResultsAxes), String);% 从原有图例中删除对应图例 legend(handles.ResultsAxes, setdiff(lgStr, 目标距离);3、 在GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet)% 获取现在使用的spreedsheet的句柄ActiveSheet = get(handles.activex1,ActiveSheet); % 现在使用的spreedsheet的现在使用工作薄 ActiveWorkbook = get(handles.activex1,ActiveWorkbook); % 现在使用的表eSheets = handles.activex1.ActiveWorkbook.Sheets; % 使用表的第一个子表 eSheet1 = eSheets.get(Item, 1); % 激活该表 eSheet1.Activate;% 获取当前单元格的句柄ActiveCell = get(handles.activex1, ActiveCell);% 选择坐标为A1的单元格Select(Range(ActiveSheet,A1);% 获取当前单元格的句柄ActiveCell = get(handles.activex1, ActiveCell);% 设置当前单元格中的内容 set(ActiveCell, Value, 仿真结果报告);4、 为Axes控件设置图片% 所有设置的Axes控件axes(handles.MyLog);% 读取图片数据Image_tip1=imread(Setting/mylog.jpg);% 显示图片image(Image_tip1);Matlab程序生成可执行的exe文件1.设置编译器:在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:Mbuild setup, 按提示选择matlab自带编译器LCC。2.将脚本编译为可执行文件:如项目文件包含:gui.m, gui.gif, fun1.m。在 此路径下命令行输入:mcc m gui.m,生 成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。 其中:gui.ctf,gui.exe为脱离matlab环境运行必需的文件。3.在未安装matlab的机器上运行可执行程序。将R22007btoolboxcompilerdeploywin32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。4.去除独立可执行程序运行时的“DOS黑窗口”。以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。matlba命令行输入:cd(prefdir)edit compopts.bat此时compopts.bat打开,在文件最后添加:set LINKFLAGS=%LINKFLAGS% -subsystem windows如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同Microsoft Visual C/C+:set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartupBorland:set LINKFLAGS=%LINKFLAGS% -aa5.遇到某些函数不能使用的问题。我的程序中用到vpa函数,运行gui.exe出现:undefined method or function vpa for input argument type of double错误提示。而gui.m脚本在matlab环境可以运行。原因:百度搜到的信息为:matlab不支持符号工具箱的编译。只好避开使用此函数。问题描述:在matlab环境下运行完全正常的gui,用mcc -m filename1.mfilename2.m“编译成独立可执行程序后,所有uitable控件无法按要求正常显示数据,显示结果是一个空表格问题原因:不详(没有仔细读那些帖子,英文看着太累。只求问题解决,不想成为专家,呵呵)解决办法:1、编译时将所有自己编写的.m 及.fig文件全部放在同一个文件夹内(假设有filename1.mfilename1.figfilename2.m filename3.mfilename3.fig),光这些还不够,需要从.toolboxmatlabcodetools文件夹中找到两个文件arrayviewfunc.m和workspacefunc.m,将它们也一并拷过来。找不到可直接在matlab安装目录下搜索。2、然后用命令mcc -m filename1.mfilename2.m filename3.m -a workspacefunc.m -a arrayviewfunc.m ”进行编译,不需要将.fig文件一起编译。其中filename1是主程序。3、编译成功,运行一切正常,table完全按要求想显示什么就显示什么,一个字,爽。一、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,本机安装的是microsoft visual c+ 6.0; 2、设置编译器。在matlab命令行输入mbuild -setup,选择安装的c编译器; 3、调用编译器。输入mcc -m filaname,filaname为要转成exe的m文件; 在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -m filaname; 4、安装MATLAB7toolboxcompilerdeploywin32目录下的MCRInstaller。 二、脱离matlab运行可执行程序 MCR是由matlab的运行环境,占用不到400M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下: MATLABR2007atoolboxcompilerdeploywin32文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中。 在其它机器上运行exe文件前,首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境。Note: 将MCRInstaller.exe拷贝到你文件所在文件夹里,用打包程序来打包,生成安装文件,设定在解包过程中自动执行MCRInstaller.exe,同时将可执行文件的图标放在桌面。另外,也可通过采用命令开关-o指定编译最终目标文件的名称,如 mcc m main.m o mrank_main,就是将编译后的文件指定为mrank_main.exe。uitable(在GUI界面上添加指定属性表格) 用法:1、uitable(numrows,numcolumns) 建立指定行数和列数的表格 2、uitable(data,columnNames) 建立指定行名称和数据的的表格 3、uitable(PropertyName1,Value1,)建立指定的属性名称和属性值的表格注意事项:Editable属性须用set命令设置,否则导致表格不可见属性 功能Column names 字符串细胞数组来定义窗体的名称Data 以细胞数组值来定义显示在窗体内的数据内容GridColor以颜色值或RGB向量来定义uitable内网格的颜色NumColumns以整数来定义窗体的行数NumRows以整数来定义窗体的列数Parent父窗口的句柄值,如果未定义,自动设为gcfPsition以四元素的向量定义uitable的位置ColumnWidth以整数来定义窗体的行宽RowHeight以整数来定义窗体的列高Editable以布尔数指定行是否可编辑(默认为1:可编辑)Units指定单位,有pixels,normalized,inches,points和centimeters5种Visible以布尔数指定窗体是否可见(默认为1:可见)DataChangedCallbackCallback函数的名称或者该函数的句柄值相关的 Matlab 命令 : 一个正态总体,方差 2 已知时,均值 的检验,用 Z 检验法,命令为: h,p,ci=ztest(x,mu,sigma,alpha,tail) 其中输入参数 x 是样本, mu 是H0 中的 0, sigma 是总体标准差 , alpha 是显著性水平 (缺省时为 0.05 ), tail 是备择假设 H1 的选择 ( H1 为 0时 tail=1, H1为 0时 tail=-1, H1为 0时 tail=0 (可缺省) ) ;输出参数 h=0 表示接受 H0, h=1 表示拒绝H0, p 表示在假设 H0下样本均值出现的概率, ci 是 0的置信区间。 一个正态总体,方差 2未知时,均值 的检验,用 t 检验法,命令为: h,p,ci=ttest(x,mu,alpha,tail) 与上面的 ztest 相比,除了不须输入总体标准差 外,其余全部一样。 两个正态总体,方差 12,22未知时,均值1=2的检验,用 t 检验法,命令为: h,p,ci=ttest2(x,y,alpha,tail) 与上面的 ttest 相比,不同之处在于输入的是两个样本 ( 长度不一定相同 ) ,其余全部一样。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!