MATLAB-GUI加载后自动启动函数

MATLAB-GUI加载后自动启动函数,matlab,matlab-guide,Matlab,Matlab Guide,我有一个Matlab应用程序,其中包含GUI。 我现在正在尝试自动化一些操作,我需要在GUI加载后立即调用一个函数,而不需要任何人参与循环。 (基本上模拟人的按钮点击…) 我尝试从“\u OpeningFcn”和“\u OutputFcn”调用所需函数,但没有成功 我也试着去关注这个链接,但效果不太好:( 在GUI完全加载后,如何编程调用函数,还有其他想法吗 谢谢 编辑1: 据我所知,如果我想调用该函数,那么我应该将其插入 “能量数据输出FCN”。 下面是它的样子: function vara

我有一个Matlab应用程序,其中包含GUI。 我现在正在尝试自动化一些操作,我需要在GUI加载后立即调用一个函数,而不需要任何人参与循环。 (基本上模拟人的按钮点击…)

我尝试从“\u OpeningFcn”和“\u OutputFcn”调用所需函数,但没有成功

我也试着去关注这个链接,但效果不太好:(

在GUI完全加载后,如何编程调用函数,还有其他想法吗

谢谢

编辑1: 据我所知,如果我想调用该函数,那么我应该将其插入 “能量数据输出FCN”。 下面是它的样子:

function varargout = EnergyData_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

hGuiFig = findobj('Tag','btnReportGeneration');
EnergyData('btnReportGeneration_Callback',handles.btnReportGeneration,[],handles);
varargout{1} = handles.output;
问题是这个函数是递归调用的(我在调试时可以看到),我最终得到了以下错误消息:

Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit.  Be aware that exceeding your available stack space
can
crash MATLAB and/or your computer.

Error in genvarname>isCellString
这就引出了一个问题,假设我在上面的链接中所描述的方法是正确的, 我应该把这个代码放在哪里? (我甚至在他贴在帖子上的示例文件中都找不到…)


感谢您的帮助!

当使用guide自动创建时,您的GUI代码中应该包含这一部分?(您可以使用guide创建一个简单的GUI,并找出它的用途)

然后拜访(就我而言)


您甚至可以在GUI打开之前启动任何函数。

您到底是如何尝试链接中发布的内容的?它对我来说效果很好。您可以发布代码吗?感谢我添加的两行代码:hGuiFig=findobj('Tag','btnReportGeneration');EnergyData('btnReportGeneration\u Callback',handles.btnReportGeneration,[],handles)你介意把这些代码放在你原来的帖子里,描述一下你在尝试调用GUI后遇到了什么样的错误吗?好的,我现在知道了。我从一个外部脚本调用它,工作起来很有魅力:)这是如何回答这个问题的?您刚刚复制/粘贴了预生成的指南代码。
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @V2Gsim_gui_OpeningFcn, ...
                   'gui_OutputFcn',  @V2Gsim_gui_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 
function V2Gsim_gui_OpeningFcn(hObject, eventdata, handles, varargin)