0

我有一个名为 viewcsi(varargin) 的函数,我想最多传入三个变量。第一个是我制作的 MBSspectrum 类,然后是一个字符串和一个数字。

viewcsi 是一个回调,它的调用方式如下:

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

sp_viewcsi 是我制作的 MBSspectrum 类,位于工作区中。我希望能够添加另一个名为 counter 的参数,它是 double 类型的整数。

我想做这样的事情:

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

或者

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

但是当我做最后两件事时,这些都不起作用,因为它们不会将“sp_viewcsi”保留为一个类,而是将其视为一个字符串。我能做些什么来解决这个问题?我有一种感觉,这很容易,但我无法弄清楚。

4

1 回答 1

1

ButtonDownFcn只会传递两个参数。你可以骗它说

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

这样回调将传递它ab,而 Matlab 会将 . 的当前值传递给它counter

另请参阅有关传递额外参数的文档。

于 2012-10-24T05:56:26.710 回答