H必须是数字或图形后代Matlab的句柄

时间:2014-04-16 17:57:44

标签: matlab function class user-interface

我在matlab的classdef中调用了GUI功能,但它给出了&#34的错误; H必须是数字或数字后代的句柄。"在guihandles(GUI); 如何在matlab的类中调用GUI的功能? 顺便说一句,班级的工作是完美的,但它给出了错误,然后数字被关闭了。 我的班级代码:

classdef GUIclass < handle  

    properties (Access = private)
        gui_h;
    end
    methods

        function obj = GUIclass
            guihandles(GUI);
        end

    end


end

1 个答案:

答案 0 :(得分:0)

这个函数guihandles(h)需要一个句柄。如果h指定的句柄(在您的情况下为GUI)已关闭,则它不再有效。在将ishandle(h)ishandle(GUI)用于GUI之前,您可以检查GUI是否是有效的句柄。

请参阅以下代码:

close all;
h = 1;

% We just closed everything, so we expect handle h=1 to be bad:
if ishandle(h)
    disp('Is a valid handle');
else
    disp('Is not a valid handle');
end

% Now make the figure (we specify '1' so that will make h okay
figure(1);

% check to see if h is valid:
if ishandle(h)
    disp('Is a valid handle');
else
    disp('Is not a valid handle');
end