2017-02-25 7 views
0

アルゴリズムは2つの画像を読み込んで表示します。ユーザーは、画像のいずれかをクリックして画面全体にドラッグすることができます。目的は、ユーザに画像をオーバーレイする能力を与えることである。図の評価中にエラーが発生しました。WindowButtonDownFcn - MATLABガイドクラス内の未定義関数

2つのスクリプト1)Main.mと2)gui_classがあります。スクリプトMain.mにはgui関数とコールバックが含まれています。 gui_classはイメージをロードするように設計されており、イメージのドラッグ機能を開始するクリックをシミュレートします。タイプの入力引数「ダブル」のためのMatlabのガイドクラス 未定義関数「Mclicked」内の図WindowButtonDownFcnの-未定義の機能を評価する際にエラー:classdef gui_class < handle 以内

は、私は、エラーメッセージが表示されます

properties (Access = private) 
     x = []; 
     y = []; 

     c1 = []; 
     r1 = []; 
     h = []; 
     w = []; 

     gui_h; 
end 
    methods 

     %function - class constructor - creates and init's the gui 
     function this = gui_class 

      %make the gui handle and store it locally 
      this.gui_h = guihandles(Main); 
      %set the callback functions 

       set(this.gui_h.load_image ,'callback' ,@(src, event) load_image_Callback(this, src, event)) 
     end 
    end 
` methods (Access = private) 


     function this = load_image_Callback(this, src, event) 
      %code loads and displays images here 
      %trigger a mouse click 
      set(gcf,'windowbuttondownfcn',@(src, event) Mclicked(src, event)); 
     end 
     function Mclicked(this, src, event) 
    % get the handles structure 
     set(gca,'units','pix') ; 
     mousePositionData = get(gca, 'CurrentPoint') 
     this.x = mousePositionData(1,1); 
     this.y = mousePositionData(1,2); 
      %...Perform task 
     end 

に位置しています。 gui_class/load_image_Callback/@で

エラー(SRC、イベント)Mclicked(SRC、イベント)

どのようにして、正しく、正しく、この関数を呼び出すのですか?その質問に加えて、なぜこれが起こっていますか?後述のように Iはmain.m、それに記載されている:

function Mclicked(hObject, eventdata, handles) 

答えて

1

機能Mclickedgui_classのインスタンスにバインドされた方法であり、それは最初の引数がありますまたはからドット表記を介して呼び出されるようなクラスを期待しますクラスのインスタンスだから、どちらか

set(gcf,'windowbuttondownfcn',@(src, event) Mclicked(this, src, event)); 

または

set(gcf,'windowbuttondownfcn',@(src, event) this.Mclicked(src, event)); 

は、メソッドを呼び出します。

関連する問題