0

viewcsi(varargin) という関数があり、最大で 3 つの変数を渡したいと考えています。1 つ目は、私が作成した MBSspectrum クラスで、次に文字列と数値です。

viewcsi はコールバックで、次のように呼び出されます。

...'ButtonDownFcn','viewcsi(''pickvox_cb'', sp_viewcsi)');

sp_viewcsi は私が作成した MBSspectrum クラスで、ワークスペースにあります。double 型の整数である counter という別の引数を追加できるようにしたいと考えています。

私はこのようなことをしたい:

...'ButtonDownFcn','viewcsi(''pickvox_cb'', sp_viewcsi, counter)');

また

...'ButtonDownFcn', {@viewcsi, 'pickvox_cb', 'sp_viewcsi', counter)');

しかし、最後の 2 つのことを行うと、「sp_viewcsi」をクラスとして保持せず、文字列のように扱うため、これらは機能しません。これを修正するにはどうすればよいですか? 簡単なことではないと感じていますが、理解できていません。

4

1 に答える 1

1

ButtonDownFcn2 つの引数のみを渡します。と言ってごまかすことができます

...'ButtonDownFcn',@(a,b)viewcsi(a,b, counter));

そのため、コールバックはそれaを とに渡しますがb、Matlab は の現在の値を渡しますcounter

追加のパラメーターの受け渡しに関するドキュメントも参照してください。

于 2012-10-24T05:56:26.710 に答える