当前位置:首页 >> 信息与通信 >>

matlab gui 设计总结


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:\pic\trn.bmp’ B=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)'); return else % 添加当前路径下的所有子目录 addpath(genpath(pwd)); addpath(genpath(currPath)); end end 2、 在 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'); % 指定要画线的 Axes axes(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 'String'); % 从原有图例中删除对应图例 = get(legend(handles.ResultsAxes),

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 的机器上运行可执行程序。

将 R22007b\toolbox\compiler\deploy\win32 中的 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:mainCRTStartup Borland: set LINKFLAGS=%LINKFLAGS% -aa 5.遇到某些函数不能使用的问题。 我的程序中用到 vpa 函数, 运行 gui.exe 出现: undefined method or function 'vpa' for input argument type of 'double'错误提示。而 gui.m 脚本在 matlab 环境可以运行。 原因:百度搜到的信息为:matlab 不支持符号工具箱的编译。只好避开使用 此函数。
问题描述: 在 matlab 环境下运行完全正常的 gui, 用"mcc -m filename1.m filename2.m“编 译成独立可执行程序后,所有 uitable 控件无法按要求正常显示数据,显示结果是一个空表 格

问题原因:不详(没有仔细读那些帖子,英文看着太累。只求问题解决,不想成为专家,呵 呵)

解决办法: 1、编译时将所有自己编写的.m 及.fig 文件全部放在同一个文件夹内(假设有 filename1.m filename1.fig filename2.m filename3.m filename3.fig) ,光这些还不够,需要 从..\toolbox\matlab\codetools 文件夹中找到两个文件 arrayviewfunc.m 和 workspacefunc.m, 将 它们也一并拷过来。找不到可直接在 matlab 安装目录下搜索。 2、然后用命令"mcc -m filename1.m filename2.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、 安装 MATLAB7\toolbox\compiler\deploy\win32 目录下的 MCRInstaller。 二、脱离 matlab 运行可执行程序 MCR 是由 matlab 的运行环境,占用不到 400M 的对于用不同 matlab 版本生 成的 exe 文件,MCR 版本也会有不同,因此,在程序打包时,最好将相应版本的 MCR 一起打包。MCR 环境的设置文件存放目录如下: \MATLAB\R2007a\toolbox\compiler\deploy\win32 文件名为 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 父窗口的句柄值,如果未定义,自动设为 gcf Psition 以四元素的向量定义 uitable 的位置 ColumnWidth 以整数来定义窗体的行宽 RowHeight 以整数来定义窗体的列高 Editable 以布尔数指定行是否可编辑(默认为 1:可编辑) Units 指定单位,有 pixels,normalized,inches,points 和 centimeters5 种 Visible 以布尔数指定窗体是否可见(默认为 1:可见) DataChangedCallback Callback 函数的名称或者该函数的句柄值

相关的 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 的置信区间。 ? 一个正态总体,方差 σ 未知时,均值 μ 的检验,用 t 检验法,命令为:
2

[h,p,ci]=ttest(x,mu,alpha,tail) 与上面的 ztest 相比,除了不须输入总体标准差 σ 外,其余全部一样。 ? 两个正态总体,方差 σ 1 ,σ
2 2 2

未知时,均值 μ 1=μ 2 的检验,用 t 检验法,命令为:

[h,p,ci]=ttest2(x,y,alpha,tail) 与上面的 ttest 相比,不同之处在于输入的是两个样本 ( 长度不一定相同 ) ,其余全部一样。


相关文章:
Matlab GUI设计
课程设计(论文)课程名称:工程机械综合课程设计 题目: MatlabGUI 设计 院(系) :机电工程 专业班级:工程机械 1201 姓名:李欣 学号:120730113 指导教师:郑建校 2016...
基于matlabGui函数画图设计
基于matlabGui函数画图设计_理学_高等教育_教育专区。在函数画图方面,Matlab不仅...点处建立一个光源 22 图 5.7 跳动的中国心 第六章 总结 在这次图形设计中...
Matlab GUI 设计说明报告
Matlab GUI 设计说明报告_数学_自然科学_专业资料。matlab GUI 设计报告说明 ...CL_Tsvd GCV_data2D GCV_ Tsvd_ GCV_ Tikh 总结 遇到某些函数不能使用的...
matlab GUI程序设计与分析
matlab GUI程序设计与分析_计算机软件及应用_IT/计算机_专业资料。matlab GUI程序...应届生求职季宝典 英文个人简历模板 创意简历模板汇集 推理型题分析与总结文档...
MATLAB GUI设计过程
基于MATLAB 的图象处理软件开发 设计指导: 设计指导: 一、引言 图形用户界面(Graphical User Interfaces,GUI)是提供人机交互的工具 和方法。GUI 是包含图形对象(如...
matlab_GUI_设计的控件使用
matlab_GUI_设计的控件使用_IT/计算机_专业资料。matlab_GUI_设计的控件使用 Matlab GUIDE 使用总结--Matlab GUI 界面(zz) 去年做了一些关于 Matlab GUI 的程序,...
matlab GUI设计
matlab GUI设计_自然科学_专业资料。本文档非常适合matlabGUI初学者学习,里面实例比较多,讲解比较详细。Matlab GUI 设计 设计的一般步骤: 1. 程序功能描述 2. 程序...
MATLAB GUI入门实例详解,让你轻松掌握GUI
MATLAB GUI入门实例详解,让你轻松掌握GUI_计算机软件及应用_IT/计算机_专业资料。MATLAB GUI入门实例详解,通过一个简单的实例让你学会matlab GUI的制作流程。...
MATLAB GUI 毕业设计
MATLAB GUI 毕业设计_信息与通信_工程科技_专业资料。毕业设计:图像处理演示实验MATLAB平台制作XXXXXXXX 大学 xxxxxxx University xx XXXXXXXXXXX 毕业设计 专业:xxxxx...
MATLAB中GUI在图像处理应用中的设计(包括各种算法)
MATLABGUI在图像处理应用中的设计(包括各种算法)_IT/计算机_专业资料。MATLAB中...6、心得体会 通过为期两周的 matlab 课程设计实践, 使我对 matlab 的使用有...
更多相关标签: