假设我想用新数据更新绘图.我应该选择什么方法?
XDataSource属性设置为某个名称,更新变量并调用refreshdata plot和呼叫plot命令.Set('Xdata',...')我正在开发一个相当复杂的GUI程序,可以使用MATLAB Compiler进行部署.(有很好的理由使用MATLAB来构建这个GUI,这不是这个问题的重点.我意识到GUI构建不适合这种语言.)
有很多方法可以在GUI中的函数之间共享数据,甚至可以在应用程序中的GUI之间传递数据:
setappdata/getappdata/_____appdata - 将任意数据与句柄相关联guidata - 通常与GUIDE一起使用; "存储[s]或检索[s] GUI数据"到句柄结构set/get操作应用于UserData句柄对象的属性我的代码的结构不是最漂亮的.现在我将引擎与前端隔离开来(好!)但GUI代码很像意大利面条.这是一个"活动"的骨架,借用Android说话:
function myGui
fig = figure(...);
% h is a struct that contains handles to all the ui objects to be instantiated. My convention is to have the first field be the uicontrol type I'm instantiating. See draw_gui nested function
h = struct([]);
draw_gui;
set_callbacks; % Basically a bunch of set(h.(...), 'Callback', @(src, event) callback) calls would occur here
%% DRAW …Run Code Online (Sandbox Code Playgroud) 我一直试图在MATLAB中组合一个gui并且遇到了很大困难.以下是关于我的程序的一些背景知识:我想创建一个向导来引导用户完成图像分析过程.向导将提示用户输入,然后在按下标有"下一步"的按钮后执行图像处理操作,依此类推.从阅读MATLAB帮助我相信gui创建有两种方法:1.用代码行写一个gui.2.使用GUIDE.
我认为GUIDE会有最浅的学习曲线.起初这个过程是直截了当的.我可以拖放按钮和文本框并轻松排列.我的计划是安排一系列面板,按钮和文字等,按下"下一步"按钮后,按顺序显示.就在这里,我变得难过了.
一旦我使用GUIDE保存面板,MATLAB就会创建一个.m文件和一个.fig文件.通过.m文件读取,我发现它为我提供了编写回调代码的空间,但没有其他的东西..fig文件是二进制文件,因此我不敢编辑它.我想知道如何控制对象,例如如何设置面板的可见性?此外,我必须分别创建向导的每个面板.我希望我可以手动将.m文件合并到一个wizard.m包装文件中,但我不认为这是正确的方法(至少对我来说,因为我看不到怎么做).
代替使用GUIDE我已经看过使用"uicontrol"函数创建guis的示例.这种方法对我来说似乎很乏味,因为我必须手动编码每个按钮的位置和大小以及默认值.也许这是最好的方法,但它吓倒了我.
因此,我对MATLAB因其看似笨重的gui工具感到不满,而且我对自己因为缺乏克服这个障碍而感到不满.
我已经看到在MATLAB中创建了一些花哨的guis并且我自己尝试了这个并且缩短了我对它们的存在感到困惑.无论是谁制作它们都是特殊的MATLAB用户(我不是),或者我错过了一些明显的东西,并且可以使用一些帮助.我现在正在质疑gui是否值得付出努力.我不认为自己正在探索类似QT的东西,因为将MATLAB代码嵌入其他语言(如python)的额外挑战.
有没有人就这个问题提出建议?任何人都可以指出我哪里出错或为什么我有这样的困难?
我在MATLAB的GUI中工作,我使用选项卡来组织信息.由于MATLAB GUIDE中不支持选项卡,因此我只需创建几个uipanels并更改其'Visible'字段.但是,当每个面板中的控件数量很大时,在面板之间切换需要一些时间.有没有人知道如何更快地切换标签?
我提供了一个基于选项卡的界面的简单示例.
tab_example_gui.m
% Figure
handles.figure_window = figure(...
'Units','characters',...
'Tag','figure_window',...
'Position',[50 50 80 25],...
'Name','Tab Example',...
'DockControls','off',...
'IntegerHandle','off',...
'MenuBar','none',...
'NumberTitle','off',...
'Resize','off');
% Buttons
handles.tab_panel = uibuttongroup(...
'Parent',handles.figure_window,...
'Tag','tab_panel',...
'Units','characters',...
'Position',[0 23 80 2],...
'SelectionChangeFcn',@(hObject,eventdata)tab_example_callback(hObject,eventdata,guidata(hObject)),...
'BorderType','none');
handles.tab_a = uicontrol(...
'Parent',handles.tab_panel,...
'Tag','tab_a',...
'Units','characters',...
'Position',[0 0 40 2],...
'Style','togglebutton',...
'String','Tab A');
handles.tab_b = uicontrol(...
'Parent',handles.tab_panel,...
'Tag','tab_b',...
'Units','characters',...
'Position',[40 0 40 2],...
'Style','togglebutton',...
'String','Tab B');
% Panel A
handles.panel_a = uipanel(...
'Parent',handles.figure_window,...
'Tag','panel_menu',...
'Units','characters',...
'Position',[0.1 0 79.8 23],...
'Visible','On'); …Run Code Online (Sandbox Code Playgroud) 我在MATLAB 2012a中使用GUIDE创建了一个滑块小部件.我希望它控制一个显示图像的轴,其中滑块逐步执行它们的序列.
我在m文件的一部分中为Min,Max和SliderStep设置了滑块的属性.
sliderMin = 1;
sliderMax = size(result); % this is variable
sliderStep = [1, 1]; % major and minor steps of 1
set(handles.slider, 'Min', sliderMin);
set(handles.slider, 'Max', sliderMax);
set(handles.slider, 'SliderStep', sliderStep);
set(handles.slider, 'Value', sliderMin); % set to beginning of sequence
Run Code Online (Sandbox Code Playgroud)
在滑块回调中,我已经验证了Min,Max和SliderStep的设置是否正确.
sliderMin = get(hObject, 'Min') % correct
sliderMax = get(hObject, 'Max') % correct
sliderStep = get(hObject, 'SliderStep') % correct
currentSliderStep = get(hObject, 'Value') % correct, 1 at start
Run Code Online (Sandbox Code Playgroud)
但是,当我单击滑块的箭头时,我只在开始和结束之间跳转.每次将正确的Min,Max,SliderStep和Value(尽管只有1或sliderMax)打印到命令窗口时.我无法以1的增量步进以查看序列内部的图像.
如何在MATLAB GUI中为静态文本赋值?
我使用GUIDE创建了一个MATLAB GUI.我有一个带回调函数的滑块.我注意到这个回调,它应该执行'滑块移动',实际上只有在滑块移动并释放鼠标后才会运行.
是否有一种方法可以在拖动滑块时运行脚本,以便实时更新绘图?我认为需要做一些事情来阻止脚本运行太多次.
我正在使用MATLAB GUI.
当我尝试访问使用按钮定义的变量时,它不会在弹出菜单中定义.变量; 它应该设置为'global',因此它在整个程序中定义.我可以在任何回调中使用它.
你们有没有想过如何使变量"全局"?
我需要在MATLAB中为我的项目创建一个GUI.我到处寻找如何编程GUI的例子,但我找不到很多东西.在MATLAB中有哪些优秀的GUI编程站点或技术?
这是设置:
我有一个图形的数据图,我试图找到是否可以尝试在图形上放置一个可以移动和改变宽度的框并返回一些值,如曲线下的百分比和面积.它看起来像这样:

有关从哪里开始的任何建议?我的感觉是,使用更多的GUI界面与标准绘图相比,它可能是可行的.