精通matlab gui设计语法问题

1.MATLAB 中的属性与属性值 Matlab中,所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种对象类型(比如坐标轴、线、曲面)相关的属性列表都是独一无二的。对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而不影响同类型的其他对象。 1.1 get() 函数 get() 函数用于查询图形对象的属性。最常用的方式有两种:get(h)
get(h,'PropertyName')
a = get(h) 返回一个结构体,它包含了图形对象 h 所有的属性和属性值。可以用
a.PropertyName 的方式访问 PropertyName 属性的属性值。
get(h,'PropertyName') 返回图形对象 h 中 PropertyName 属性的值。
1.2 set() 函数
set() 函数用于设置图形对象的属性。常用语法:set(H,'PropertyName',PropertyValue,...)
H 为图形对象,PropertyName 为属性名,PropertyName 为属性值。
2.GUI 中的回调函数
回调函数是控件接收到用户操作时调用的一个特定函数。
2.1 回调函数自动命名
回调函数的函数名是 GUI 对其自动命名,当在设计界面添加一个控件并保存时,MATLAB 就会根据该控件的“tag”属性确定回调函数的名称。例如,当控件 pushbutton1 添加时,其“tag”属性为 pushbutton1 ,则它的回调函数就会命名为 pushbutton1_callback 。如果修改“tag”属性,那么它的回调函数也会跟着改变。
2.2 回调函数的输入参数
回调函数的输入参数也是由 GUI 自动确定的。常用的有 hObject 、 eventdata 、 handles 。
hObject 是当前回调函数图形对象的句柄。例如在回调函数 pushbutton1_callback 中,hObject 就是 pushbutton1的句柄。通过 hObject 可以利用 get 和 set 函数获得和设置当前图形对象的属性。
eventdata 是预留的输入参数。
handles 是一个结构体,存放里图形窗口中所有图形对象的句柄。可以在回调函数之间传递数据。例如:set(handles.text3, 'visible', 'off'); %修改 text3 的属性
2.3 GUI 程序文件
1)fig 文件
fig 文件时一个图形文件,在设计界面时创建的界面保存在 fig 文件中。包括控件、菜单等所有图形对象的属性。
m 文件用来存放 m 文件代码。matlab 自动生成 m 文件,为 GUI 控制程序提供一个框架。
m 文件包含以下几个部分:
主函数:主函数包括注释说明和窗口初始化程序,函数名为文件名。
子函数 FileName_OpeningFcn :子函数 FileName_OpeningFcn 是打开窗口时的初始化程序,当窗口打开时立即执行这个函数,这个函数只会执行一次。FileName 为文件名。
子函数 FileName_OutputFcn :子函数 FileName_OutputFcn 是窗口的输出子函数,定义输出到命令窗口的变量。
其它子函数是控件的回调函数。
2.4 全局变量
在回调函数之间的数据传递可以使用定义全局变量的方法。global 指令用于声明全局变量。语法为:global X Y Z
这里需要注意的是,我们必须要在每个回调函数中使用 global 指令,这样我们才能调用全局变量。
3. 其它常用函数
3.1 弹出检索文件的对话框 uigetfile
调用 uigetfile 函数可以弹出一个检索文件的对话框。
常用语法如下:filename = uigetfile
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)
filename = uigetfile 弹出一个检索文件的对话框,列出当前路径下的所有文件,通过这个对话框选择文件并单击“打开”按钮后,如果文件存在,且文件名有效,则函数会返回文件名。
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec) 在弹出的对话框中只显示文件名与 FilterSpec 匹配的文件。FilterSpec 可以是字符串也可以是字符串组成的阵列,支持通配符“*”。例如:
[filename, pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'}) %只显示 jpg、bmp、gif 类型的文件
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle) DialogTitle指定对话框标题
3.2 弹出一个保存文件的对话框 uiputfile
函数 uiputfile 可以弹出一个保存文件的对话框,使用方法与上文类似。
阅读(...) 评论()您的举报已经提交成功,我们将尽快处理,谢谢!
程序出错了
matlab gui 这个工具用的人不多.
建议你去下载一个中文说明手册
很多东西你这么描述是不清楚的
自己多去研究研究
学会学习方法....
Python语言种清晰语言另意思作者有意设计限制性强语法使得好编程习惯(例if语句下行向右缩进)都能通过编译
大家还关注
获取西瓜影音网页嵌套代码 (代码需要放置...推荐这篇日记的豆列
······查看: 2560|回复: 14|关注: 0
gui和m文件问题
<h1 style="color:# 麦片财富积分
新手, 积分 9, 距离下一级还需 41 积分
已经得到了一个完整的m文件,现在要用gui实现一些功能,我完全是小白啊(无奈),哪位大大有空指点下啊;
gui的callback不会编写啊,数据和m文件是math一个帖子里面的(万分谢谢math),刚好我做的和那个例子差不多也是6类··
我想的是的点击‘待测数据’时能够选择‘new_data.xls’ 这个文件,然后点击开始测试,类别能在listbox 里面显示。
怀着一颗万分感谢的心希望大家帮忙啊!
12:53 上传
点击文件名下载附件
29.66 KB, 下载次数: 19
12:53 上传
点击文件名下载附件
11.5 KB, 下载次数: 12
12:56 上传
点击文件名下载附件
2.77 KB, 下载次数: 34
论坛优秀回答者
<h1 style="color:#17 麦片财富积分
关注者: 228
说得好笼统啊。第一个就是可以用xlsread读取
<h1 style="color:# 麦片财富积分
说得好笼统啊。第一个就是可以用xlsread读取
用gui中的按钮读取,也就是点击读取数据按钮时,能在下面的那个空白框选择读取数据文件路径呀,
论坛优秀回答者
<h1 style="color:#17 麦片财富积分
关注者: 228
|此回复为最佳答案
没看到读取数据按钮额。。。
[filename,pathname]=uigetfile(...
& & {'*.*.*.*.jpeg','图象文件(*.bmp,*.jpg,*.png,*,jpeg)';...
& & '*,*','所有文件(*.*)'}, ...
& & '请选择一个图片文件');
if isequal(filename,0)||isequal(pathname,0)
axes(handles.axes_disc);
fpath=[pathname filename];
global img_
img_src=imread(fpath);
这是之前我用来读图片的文件,你可以看看,试着模仿一下
<h1 style="color:# 麦片财富积分
没看到读取数据按钮额。。。
[filename,pathname]=uigetfile(...
谢谢啊,太感谢大大了··:'( 感谢啊
<h1 style="color:# 麦片财富积分
没看到读取数据按钮额。。。
[filename,pathname]=uigetfile(...
晕了,就是那个待测数据,要读取待测数据
论坛优秀回答者
<h1 style="color:#17 麦片财富积分
关注者: 228
晕了,就是那个待测数据,要读取待测数据
我给的代码是读取图片,你相当于读取xlsx文件
<h1 style="color:# 麦片财富积分
本帖最后由 xiaoxiaomo 于
16:57 编辑
我给的代码是读取图片,你相当于读取xlsx文件
麻烦大大们直接看黄色地方的程序和我的注释,谢谢,谢谢!
function varargout = untitled2(varargin)% UNTITLED2 MATLAB code for untitled2.fig%& && &UNTITLED2, by itself, creates a new UNTITLED2 or raises the existing%& && &singleton*.%%& && &H = UNTITLED2 returns the handle to a new UNTITLED2 or the handle to%& && &the existing singleton*.%%& && &UNTITLED2('CALLBACK',hObject,eventData,handles,...) calls the local%& && &function named CALLBACK in UNTITLED2.M with the given input arguments.%%& && &UNTITLED2('Property','Value',...) creates a new UNTITLED2 or raises the%& && &existing singleton*.&&Starting from the left, property value pairs are%& && &applied to the GUI before untitled2_OpeningFcn gets called.&&An%& && &unrecognized property name or invalid value makes property application%& && &stop.&&All inputs are passed to untitled2_OpeningFcn via varargin.%%& && &*See GUI Options on GUIDE's Tools menu.&&Choose &GUI allows only one%& && &instance to run (singleton)&.%% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help untitled2
% Last Modified by GUIDE v2.5 30-Dec-:22
% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',& && & mfilename, ...& && && && && && & 'gui_Singleton',&&gui_Singleton, ...& && && && && && & 'gui_OpeningFcn', @untitled2_OpeningFcn, ...& && && && && && & 'gui_OutputFcn',&&@untitled2_OutputFcn, ...& && && && && && & 'gui_LayoutFcn',&&[] , ...& && && && && && & 'gui_Callback',& &[]);if nargin && ischar(varargin{1})& & gui_State.gui_Callback = str2func(varargin{1});end
if nargout& & [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else& & gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT
% --- Executes just before untitled2 is made visible.function untitled2_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject& & handle to figure% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)% varargin& &command line arguments to untitled2 (see VARARGIN)
% Choose default command line output for untitled2handles.output = hO
% Update handles structureguidata(hObject, handles);
% UIWAIT makes untitled2 wait for user response (see UIRESUME)% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.function varargout = untitled2_OutputFcn(hObject, eventdata, handles) % varargout&&cell array for returning output args (see VARARGOUT);% hObject& & handle to figure% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)
% Get default command line output from handles structurevarargout{1} = handles.
% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject& & handle to pushbutton1 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)close all clear all clc x=xlsread('training_data.xls',['B2:G401']); y=xlsread('training_data.xls',['I2:K401']); inputs = x'; targets = y';% ?? 1/2 ¨?>>,???? 1/2 ??±??????¨? 1/2 ??BP?????(C)?????±,????? 1/4 ????? 3/4
??u?,?????????????20hiddenLayerSize = 20;net = patternnet(hiddenLayerSize);% ???? 3/4 ? 1/2 ????¤???í?????????????é?>>>>??????¨?>>°??>>????,??(C)% For a list of all processing functions type: help nnprocessnet.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};% °??u?·?? 3/4 ?·???????·????u?·???????é?¤??????????????% For a list of all data division functions type: help nndividenet.divideFcn = 'dividerand';&&% Divide data randomlynet.divideMode = 'sample';&&% Divide up every samplenet.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 15/100;net.divideParam.testRatio = 15/100;% ?u?·????% For a list of all training functions type: help nntrainnet.trainFcn = 'trainlm';&&% Levenberg-Marquardt% ???? 3/4 ù· 1/2 ?ó????AE???????% For a list of all performance functions type: help nnperformancenet.performFcn = 'mse';&&% Mean squared error% >> ? 1/4 ????% For a list of all plot functions type: help nnplotnet.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...&&'plotregression', 'plotfit'};% ??? 1/4 ?u?·?????¨°ü?????u?·???é?¤u??????(C)[net,tr] = train(net,inputs,targets);% ????????outputs = net(inputs);errors = gsubtract(targets,outputs);performance = perform(net,targets,outputs)% >>?u??u?·???é?¤??????u? 1/2 á??trainTargets = targets .* tr.trainMask{1};valTargets = targets&&.* tr.valMask{1};testTargets = targets&&.* tr.testMask{1};trainPerformance = perform(net,trainTargets,outputs)valPerformance = perform(net,valTargets,outputs)testPerformance = perform(net,testTargets,outputs)% ?????é??????u?,÷,?????view(net)% ,ù 3/4 ?>> ? 1/4 u? 1/2 á???? 3/4 ??¨??·??ú??% Uncomment these lines to enable various plots.figure, plotperform(tr)figure, plottrainstate(tr)figure, plotconfusion(targets,outputs)figure, ploterrhist(errors)%????????,????u?·?ú????????±??ae?u?·??????save('training_net.mat','net','tr'); %以上是通过神经网络得到的m文件代码,点击gui界面的开始后可以正常运行
% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject& & handle to pushbutton2 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)[filename,pathname]=uigetfile(...& & {'*.','excel?? 1/4 ?(*.xls)';...& & '*,*','?ù???? 1/4 ?(*.*)'}, ...& & '???????>>,??? 1/4 ?');if isequal(filename,0)||isequal(pathname,0)& &endaxes(handles.axes_disc);fpath=[pathname filename];global xls_xls_src=imread(fpath);set(handles.edit1,'string',str);%这是转基因奔奔大大读取图片的程序,我修改了下成功了,点击读取数据按钮后可以正常读取excel文件,再次谢谢转基因奔奔大大!
function edit1_Callback(hObject, eventdata, handles)% hObject& & handle to edit1 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)clear allclose allclcload 'training_net.mat'%%&&You can change the filename, sheet name, and range%u 1/4 ???????? 3/4 ?new_input = xlsread('new_data.xls',['A2:F25']);new_output = round(net(new_input'));xlswrite('new_data.xls',new_output','result','G2');%°??? 1/2 ??AE×?>>>>??????u??à±?new_output=new_output';[r c]=size(new_output);my_category=zeros(r,1)for i=1:r& &my_category(i,1)=2^new_output(i,1)+2^new_output(i,2)+2^new_output(i,3);endxlswrite('new_data.xls',my_category,'result','J2');
%这里是用来判断新读取数据属于什么类别的m文件,我的想法是通过这个m文件判断新数据类别,并且在listbox中显示,可是失败了,listbox里面没有任何显示,而在command window中显示了一些数字,好像这个判断的m文件有问题啊,= = 我也不知道
function edit1_CreateFcn(hObject, eventdata, handles)% hObject& & handle to edit1 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.%& && & See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))& & set(hObject,'BackgroundColor','white');end
% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject& & handle to pushbutton3 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)close%关闭按钮,成功% --- Executes on selection change in listbox1.function listbox1_Callback(hObject, eventdata, handles)% hObject& & handle to listbox1 (see GCBO)% eventdata&&reserved - to be defined in a future version of MATLAB% handles& & structure with handles and user data (see GUIDATA)str = 'name|sex|yearold|ID|company';set(handles.listbox1,'String',str);
% Hints: contents = cellstr(get(hObject,'String')) returns listbox1 contents as cell array%& && &&&contents{get(hObject,'Value')} returns selected item from listbox1
论坛优秀回答者
<h1 style="color:#17 麦片财富积分
关注者: 228
没看到黄色的部分,注释编码有问题。。。其实你可以把问题发上来,然后把可运行的源程序发上来
<h1 style="color:# 麦片财富积分
没看到黄色的部分,注释编码有问题。。。其实你可以把问题发上来,然后把可运行的源程序发上来 ...
我在word上复制过来的,现在改好了,:lol ,太感谢大大了,麻烦大大帮忙看看判断新数据属于什么类别的m文件对不对呀
站长推荐 /3
使用MATLAB和Simulink进行软件无线电设计
Powered by

我要回帖

更多关于 matlab gui设计实例 的文章

 

随机推荐