1

GUI Figure でカーソルによって表示されるテキストを変更する自己関数を作成しています。これは私がその時までにやったことです:

dcm=datacursormode(hAxes.figure);
datacursormode on
set(dcm,'update',@myfunction)




function output_txt = runnumber(obj,event_obj)
% Display the position of the data cursor
% obj          Currently not used (empty)
% event_obj    Handle to event object
% output_txt   Data cursor text string (string or cell array of strings).

pos = get(event_obj,'Position');
%getCursorInfo(dcm)
%inputDrDataCell

% Get the handle to the data cursor.
menu = findall(get(gcf,'Children'),'Type','uicontextmenu');
menuCallback = get(menu,'Callback');
dataCursor = menuCallback{2};

% Get the coordinates if a datatip exists.
info = getCursorInfo(dataCursor);
if ~isempty(info)
number = info.DataIndex   
end
output_txt = {['X: ',num2str(pos(1),4)],...
['Y: ',num2str(pos(2),4)],...
['Run number:',num2str(number)]};

% If there is a Z-coordinate in the position, display it as well
%if length(pos) > 2
 %   output_txt{end+1} = ['Z: ',num2str(pos(3),4)];

%end
end

ただし、軸の名前、生データ ファイルなどを表示するために、より多くの入力引数を @myfunction に渡したいと思います。

4

2 に答える 2

2

追加の引数は、関数ハンドルとセル内の追加の引数を使用して、コールバックに提供されます。

set(dcm,'update',{@myfunction,arg3,arg4});

これらは、関数への 3 番目と 4 番目の入力に対応します。

function output_txt = runnumber(obj,event_obj,arg3,arg4)
于 2013-07-02T11:41:54.280 に答える
1

これを行う別の方法は、ヒュー・ノーランの答えに問題はありませんが、次のように無名関数ハンドルを使用することです。

set(dcm, 'update', @(obj,event) runnumber(obj,event,arg3,arg4));

チッ!

于 2013-07-02T14:05:49.567 に答える