-
2021-04-18 14:46:58
最近在关注MATLAB中GUI界面设计,我想在界面中设计一个按钮,然后点击按钮加载数据,可以加载外部数据,比如.mat文件,然后将mat数据中的变量全部加载到工作空间中。
代码如下:
[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl', 'All MATLAB Files (*.m, *.fig, *.mat, *.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file');
if (filename==0 & pathname==0)
msgbox('您没有选择文件,请重新选择!','打开文件出错','error');
else
Numdata = load(strcat([pathname,filename])); %加载数据,保存为一个结构体
dataname=fieldnames(Numdata); %获取结构体的所有变量名,保存为一个矩阵
length = size(dataname,1); %获取矩阵的长度
for i=1:length
strname = dataname(i,1);
assignin('base',char(strname), getfield(Numdata,char(strname)));% 要将变量名转换为字符串,getfield获取结构体中指定变量的值,然后用assignin将变量加载到工作空间
end
msgbox('打开及读取数据完毕!','确认','warn');
end
最后可以将.mat中所有的变量成功加载matlab的工作空间中,这段代码放在按钮的回调函数下。
更多相关内容 -
MATLAB GUI界面设计
2018-08-17 22:31:31MATLAB GUI界面设计,简单易懂,GUI设计比较好,建议学习。 -
MATLAB GUI界面设计的简易八进制计算器
2020-11-03 16:21:40软件界面上能显示课程设计题目、四则运算控制按钮、两组输入控件、一组输出控件,可实现连续运算,可实现单个元素的运算,也可实现一组数据的运算,可显视运算成功或运算错误提示。 -
基于MATLAB GUI 界面设计解线性方程组matlab.zip
2019-08-05 17:13:07基于MATLAB GUI 界面设计解线性方程组matlab基于MATLAB GUI 界面设计解线性方程组matlab -
MATLAB实现不同插值方法的GUI界面设计 源程序代码_MATLABGUI界面设计_PCHIP_linearpchip_mat
2021-10-03 12:15:39MATLAB实现linear;pchip;spline三种不同插值方法的GUI界面设计 -
Matlab GUI登录界面设计
2019-05-07 16:18:21Matlab GUI登录界面设计!欢迎下载! -
Matlab GUI界面设计
2017-01-24 07:44:48摘要:本篇博文基于MATLAB2014a进行GUI设计。摘要:本篇博文基于MATLAB2014a进行GUI设计。
1.启动GUI设计
命令行输入guide,回车。
即可得到下面的对话框,进行相关的选择和设置
点击确定,得到两个文件,一个是.m文件,另一个是.fig文件,需要说明的是,.m文件用于编辑GUI中控件所需要的回调代码,.fig文件可以用鼠标拖拽等比较简单的操作进行初始的界面设计。
2..fig文件控件布局
本篇暂时涉及按钮、可编辑文本、静态文本、弹出式菜单、轴的实现,拖拽这些控件到界面中,可以点击绿色三角形运行GUI看看效果。
双击任意控件可以弹出控件的属性检查器,这里可以更改控件的初始属性,并且可以查看控件的tag值,用于回调程序的句柄调用。
3.GUI初始程序编写
3.1.初始程序是界面运行时最先执行的程序,用于对控件等的一些初始设置,该部分的代码应该添加在.m文件的test_OpeningFcn(hObject, eventdata, handles, varargin)函数中。
插入如下代码,使得可编辑文本失效
set(handles.edit1,'enable','off');
3.2.按钮程序编写,使得可编辑文本生效,右击按钮->查看回调->Callback,输入
set(handles.edit1,'enable','on');
3.3.可编辑文本程序编写,当可编辑文本框中输入文字后,在静态文本中显示出来
右击可编辑文本->查看回调->Callback,输入
set(handles.text1,'string',get(handles.edit1,'string'));
3.4.弹出式菜单编写
双击弹出式菜单,调出属性编辑器,进行以下操作
输入相应文字,点击确定。
该部分函数编写,右击弹出式菜单->查看回调->Callback,输入
3.5.轴部分程序编写
为了简单起见,这部分内容写在程序开头,作用是显示了一个正弦曲线
代码如下:
axes(handles.axes1) t=0:0.001:4*pi; f=sin(t); plot(t,f,'g') axis([0 4*pi -1 1]) grid on xlabel('t') ylabel('sin(t)') title('正弦函数图像') legend('f=sin(t)')
至此,基本功能均可实现
4.总结
①每个控件均可在属性编辑器里面设置初始值;
②如果需要全局变量,在定义和使用的时候都需要写关键字global。
5.附上全部代码。
function varargout = test(varargin) % TEST MATLAB code for test.fig % TEST, by itself, creates a new TEST or raises the existing % singleton*. % % H = TEST returns the handle to a new TEST or the handle to % the existing singleton*. % % TEST('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TEST.M with the given input arguments. % % TEST('Property','Value',...) creates a new TEST or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before test_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to test_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 test % Last Modified by GUIDE v2.5 26-Jan-2017 16:20:09 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @test_OpeningFcn, ... 'gui_OutputFcn', @test_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 test is made visible. function test_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 test (see VARARGIN) set(handles.edit1,'enable','off'); axes(handles.axes1) t=0:0.001:4*pi; f=sin(t); plot(t,f,'g') axis([0 4*pi -1 1]) grid on xlabel('t') ylabel('sin(t)') title('正弦函数图像') legend('f=sin(t)') % Choose default command line output for test handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes test wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = test_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 structure varargout{1} = handles.output; % --- 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) set(handles.edit1,'enable','on'); 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) set(handles.text1,'string',get(handles.edit1,'string')); % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. 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 selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) str = get(handles.popupmenu1, 'String'); val = get(handles.popupmenu1,'Value'); switch str{val}; case '选项一' set(handles.text1,'string','选项一触发'); case '选项二' set(handles.text1,'string','选项二触发'); case '选项三' set(handles.text1,'string','选项三触发'); end % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu 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
相关下载如下:
欢迎交流指正。。。
-
matlab GUI界面设计
2011-08-27 08:09:50关于matlab界面设计的超全ppt,轻松掌握matlab界面设计, -
利用matlab gui界面设计
2018-11-30 19:58:49通过输入焊缝坡口某界面的4个特征点,可自行生成焊缝坡口的理想三维模型,适合初学matlab gui的道友 -
MATLAB GUI界面设计在电机故障诊断中的应用.pdf
2021-10-31 21:48:40MATLAB GUI界面设计在电机故障诊断中的应用.pdf -
IIR数字滤波器 Matlab GUI界面设计
2022-01-21 16:30:40IIR数字滤波器 Matlab GUI界面设计 -
数字图像处理系统 MATLAB gui界面设计
2018-07-22 19:56:11基于MATLAB gui 界面数字图像处理系统,包含去噪、增强、FFT、小波变换等数十种基本功能,还包括人脸检测,图像滤镜处理等功能 -
图像融合-区域能力融合 基于Matlab GUI界面设计
2022-06-01 22:50:30图像融合-区域能力融合 基于Matlab GUI界面设计 -
说话人识别MATLAB GUI界面设计
2018-06-16 18:03:22说话人识别的基于MATLAB GUI的界面制作,程序已经经过验证可以实现,里面包含了语音识别的文件库,也可以自己建立文件库进行语音识别,主要用了DTW和VQ的说话人识别。 -
基于双燃料发动机排放算法的MATLAB GUI界面设计.pdf
2021-06-26 11:00:19基于双燃料发动机排放算法的MATLAB GUI界面设计.pdf -
基于双燃料发动机排放算法的MATLAB GUI界面设计.rar
2021-09-29 01:26:29基于双燃料发动机排放算法的MATLAB GUI界面设计.rar -
基于MATLAB中的GUI设计的钢琴界面设计并能发声
2021-01-06 10:35:50我所使用的MATLAB版本——MATLAB R2017a MATLAB的GUI的操作其他人写的很清楚了,在此不再赘述。 MATLAB的GUI的基本操作可见:GUI基本操作 这次所设计的钢琴有简单的七个琴键,DO RE ...其中的STRING代表在GUI界面的名字 -
课设论文 matlab gui 界面设计.doc
2020-06-03 00:08:57function varargout = jy01(varargin % JY01 M-file for jy01.fig % JY01, by itself, creates a new JY01 or raises the existing % singleton. % % H = JY01 returns the handle to a new JY01 or the handle to -
基于MATLAB GUI 界面设计解线性方程组
2019-04-08 17:13:26基于MATLAB GUI 界面设计解线性方程组 -
MatlabGUI界面设计
2011-05-01 17:54:15matlab/gui图像处理界面设计及源代码,有相关实力,tools相关文件 -
2020年MATLAB编程与应用实验报告(GUI程序设计).doc
2020-12-02 10:45:351 GUI程序设计 实 验 报 告 所属课程名称 MATLAB编程与应用 实 验 地 点 实 验 日 期 21112 班 级 学 号 姓 名 指导老师 一实验目的 了解GUI程序设计通过GUI程序设计来实现简易计算器了解GUI设计的方法和过程 二实验... -
基于MATLAB的GUI界面设计流程
2022-04-08 19:09:41大三上小学期学习了MATLAB的GUI界面设计,感觉挺不错的,这里做个总结! 基本流程 1、命令行输入“guide”指令,打开GUI面板,选择“新建GUI”、“Blank GUI” (左侧工具栏含有待添加的元素) 2、添加...大三上小学期学习了MATLAB的GUI界面设计,感觉挺不错的,这里做个总结!
基本流程
1、命令行输入“guide”指令,打开GUI面板,选择“新建GUI”、“Blank GUI”
(左侧工具栏含有待添加的元素)
2、添加所需要的的元素(一般需要普通按钮、静态文本、普通文本、坐标图、单选按钮等)
3、右键“普通按钮”,选择“查看回调”中的“CALLBACK”,输入对应的MATLAB命令(可以看做编写函数,点击按钮是进行调用)
(此图仅用于举例,代码不全)
4、运行调试
常用代码
1、将动态文本(可编辑文本)的值赋予代码中某变量(以变量A为例)
A = str2num(get(handles.ed1,'string'));
(代码中“ed1”是可编辑文本的标签,在GUI界面可设置)
2、确定坐标图
因为一个GUI中可能设置多个坐标图,所以也需要标签(Tag)确定
axes(handles.axes1);
上图中“axes1”是设置的标签
3、赋予动态文本值
(这个是方便将计算结果展示出来用的)
set(handles.ed1,'string',x);
ed1是动态文本的标签,x是变量名字,相当于把x这个变量的值显示在动态文本里
元素介绍
以动态文本为例
双击后效果如下
举个栗子
就拿绘制
为例吧
第一步,用元素构造GUI界面
第二步,运行
3、参考代码
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) A = str2num(get(handles.ed1,'string')); x = [0:0.01:10]; y = sin(A.*x); set(handles.ed2,'string',max(y)); axes(handles.axes1); plot(x,y);
欢迎大家批评指正!后续随着学习深入会继续更新!
-
MATLAB GUI:使用 MATLAB 在 GUI 中绘制正弦波-matlab开发
2021-05-29 14:11:37Matlab GUI基础,正弦波图.. -
基于MATLAB GUI界面的串口助手
2020-12-25 17:30:36通过GUI设计的串口将单片机传来的数据发送给MATLAB进行分析。目前实现对数据的绘制和保存。 -
基于matlab的GUI界面设计的通信系统设计.rar
2019-10-17 09:26:24点击signal_generator.fig即可运行整个程序,代码在matlab R2018b上绝对完美运行,GUI纯小白建议预习再下,如果不会打开GUIDE,百度一下再打开,不要报了bug就说代码不能运行。 -
基于Matlab的数字图像gui界面设计
2022-04-01 20:10:22基于Matlab的数字图像gui界面设计 利用Matlab设计了一个图像处理的GUI界面,包括了各种图像处理功能。 一、使用步骤 1.界面设计 在界面设计方面,设有引导界面、教学界面和实验界面。教学界面在上下方设置Text控件,...
基于Matlab的数字图像gui界面设计
利用Matlab设计了一个图像处理的GUI界面,包括了各种图像处理功能。
一、使用步骤
1.界面设计
在界面设计方面,设有引导界面、教学界面和实验界面。教学界面在上下方设置Text控件,提供文字讲解。实验界面分为7个子系统,每个系统共同设有两个坐标轴、退出系统、返回系统组件外,二值化、图像变换界面采用Pushbutton选择功能,边缘检测、灰度化设有Radiobutton对算法进行选择,图像增强采用Radiobutton、Checkbox、Edit、Uibuttongroup控件,分别实现滤波器选择、添加噪声、滤波器参数设定、功能分类功能。
2.功能设计
在功能设计方面,二值化采用graythresh函数设置Otsu法,并获取人工阈值进行二值化分割;灰度化编写具体函数进行平均值法、最大值法、加权平均值法操作;边缘检测采用edge函数设有Roberts、Sobel、Prewitt、Canny、Log算子进行边缘检测;图像变换设有旋转、平移、缩放、镜像操作;图像增强采用imnoise函数自设添加乘性、椒盐、高斯、随机噪声,并设置中值、均值、高斯、同态、高低通滤波处理;形态学处理利用工具箱设置了膨胀、腐蚀、开运算、闭运算;采用imhist和histeq实现显示直方图和直方图均衡功能。
3.界面详设
3.1实验界面设计为7个子系统,7个子系统都可以与实验界面主系统联通,每个子系统的布局又各具特点。实验界面被分为7个子系统,是为了更好地演示每种图像处理方式对于图像的处理效果,同时分为多个子系统能够让功能更加丰富化,处理参数更加细致。下面将详细介绍每个子系统的页面布局。
3.2图像二值化处理界面采用简单的按钮操作,中央为两个坐标轴,分别展示处理前后的图像,框头是系统名称。分为otsu法和人工阈值法对图像进行二值化处理,人工阈值法另设提示窗口,编写回调函数对阈值进行控制,输入阈值进行二值化。除了主要功能按钮,另外的读取图片,返回系统,保存图片,退出系统为所有子界面所共用功能,所有子界面均设有。
3.3图像灰度化界面和边缘检测界面设计如图所示,由于灰度化处理和边缘检测有多种处理方式,并且每种方式之间各具特点,同时处理的效果并不好,故该两个界面设计为多个单选按钮(radiobutton),对处理的方案进行单项选择,并且使用按钮组(uibuttongroup)将单选按钮框在一起,附上按钮组名称,更加便于操作与理解使用,同时也使整个界面更加整体、美观。
3.4形态学处理界面和图像变换处理界面都采用8个按钮对系统进行操作,中央为两个坐标轴,分别展示处理前后的图像,框头是系统名称。除了主要功能,形态学界面另设膨胀、腐蚀、开运算、闭运算按钮;图像变换界面另设旋转、缩放、平移、镜像按钮。
3.5为了满足图像增强处理的多样化功能,并且考虑到一般的图片处理效果不明显,故在左侧按钮组设有多选按钮,分别为高斯噪声、椒盐噪声、乘性噪声、随机噪声,右侧按钮组设6个单选按钮,分别为中值滤波器、均值滤波器、高斯滤波器、同态滤波器、低通滤波器、高斯滤波器,并且设置了两个可编辑文本,编写回调函数,对滤波器的模板大小进行选择,下边的可编辑文件对sigma的值进行选择,最后通过按钮组上方的按键进行添加噪声和滤波操作。
总结
以上就是我设计的基于Matlab的数字图像gui界面设计的内容,多界面系统联合使用使得该GUI界面具有功能性强、界面简洁美观、用户体验性好等特点。
有需要的小伙伴百度网盘自取,如过期私信我,也希望大家能够多多指正批评。
链接:https://pan.baidu.com/s/1GrQ30BKh-lmL6xBiHaEncA
提取码: