2016-07-30 15 views
1

タイマ機能のエラーが発生しました。私は検索しようとしましたが、答えは見つかりません。タイマ機能のエラー(MATLAB R2014a)

function figure1_CreateFcn(hObject, eventdata, handles) 
global t 
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1,'TasksToExecute',150); 
t.TimerFcn = {@my_callback_fcn}; 

私が得たエラーは次のとおりです。

Error while evaluating TimerFcn for timer 'timer-1'
Too many input arguments.

私のMATLAB R2014aのバージョンがあります。 startファンクションはpushbutton2_Callbackファンクションと呼ばれます。
私はtimerへの電話でPeriod1.0,TasksToExecuteからinfまたはTimerFcnに変更しようとしました。それは助けにはならない。

私を助けることができる人はいますか?

+0

'my_callback_fcn'(上記マットで尋ねた試作品)の最初の行もあなたならば、少なくとも2つの入力変数(呼び出し元のオブジェクトのハンドルとイベントデータ)を持っている必要がありますそれらを使用しないでください。 'function my_callback_fcn(〜、〜)' – Hoki

+0

@Hokiこんにちは!これは、関数my_callback_fcn(hobj、evt)のように見えるはずです。あるいは、これらの変数を実際に使用しない場合、Matlabに関数のmy_callback_fcn私のコールバック関数はfunction * my_callback_fcn(handles、〜)*です。エラーが発生する**名前 'edit1'はクラス 'timer objects'のインスタンスのアクセス可能なプロパティではありません。** –

答えて

0

エラーは、指定されたコールバック関数my_callback_fcnに2つの入力引数がないために発生します。あなたはそれを解決するために2つの可能性があります。

t.TimerFcn = {@(obj,event)my_callback_fcn}; 
  • my_callback_fcnことのようにあなたの最初の行に2つの入力引数を追加します。あなたは、タイマーコールバックを割り当てるとき

    1. つの入力引数を持つ無名関数を作成します:のみそれらのを行いますこの関数は次のようになります。

      function my_callback_fcn(obj,event) 
      

    関数内に引数が不要な場合は、~で引数を無視できます。そこで質問から、あなたのコードは次のようになります。

    t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150); 
    t.TimerFcn = {@(~,~)my_callback_fcn}; 
    

    Hereタイマーコールバック関数にいくつかのより多くの情報です。


    thisコメントとthat 1に対処するには、次の

    はその後、あなたがいない関数プロトタイプに二つの引数を追加しますので、同時に両方のソリューションを適用しようとしないでください それを提供する。

    Error while evaluating TimerFcn for timer 'timer-1'
    Not enough input arguments.

    あなただけがあなたのコメントに掲示プロトタイプによる解決策2を実行する必要があります。結果は次のエラーになります。ここで働いてデモです:

    function timertest 
    t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150); 
    t.TimerFcn = {@my_callback_fcn}; 
    start(t); pause on; pause; stop(t); delete(t); 
    
    function my_callback_fcn(handles,~) 
    handles; 
    disp('xy'); 
    
  • +0

    こんにちは〜ありがとうございました!私はエラー情報が*入力引数が足りません*と私はHokiがエラー情報になると言ったものを試してみます*名前 'edit1'はインスタンスのアクセス可能なプロパティではありませんクラス 'タイマーオブジェクト'です。* edit1は時間オブジェクトとは関係がありませんので、とても奇妙です –

    +0

    コメントにコードを入力する方法がわかりません。 –

    +0

    @standerQiu 2つの可能性を同時に適用しましたか? ?これは、2つ(ソリューション2を実行して追加したもの)が必要なときに引数なしで関数を呼び出そうとしたために機能しません。コメントのコードを書式設定するには、コードをバックティックで囲みます。 [Here](http://meta.stackexchange.com/a/24794/298845)はその詳細な情報です。 – Matt

    関連する問題