Не уверен, что это то, что вам нужно, но вы можете создать изображение и назначить ему функцию обратного вызова напрямую. Не нужно делать это кнопкой uicontrol. Вы можете сделать это независимо от того, является ли изображение само по себе или встроено в uipanel и т. Д. Например,
Fig = figure(1);
MyPanel = uipanel( 'units' , 'normalized',
'position', [0.2, 0.2, 0.6, 0.6],
'title' , 'My Panel' );
% Draw smiley
Sm = cat(3, ones(11,11), ones(11,11), zeros(11,11) ); % Draw background
Sm(3, 3, 3) = 1; Sm(3, 9, 3) = 1; Sm(9, 3:9, 3) = 1; % Draw face
Ax = axes( MyPanel, 'units', 'normalized', 'position', [0.2, 0.2, 0.6, 0.6] );
function Im_callback( Handl, Evnt )
set( Handl, 'cdata', double( ~get( Handl, 'cdata' ) ) );
end
Im = imagesc( Ax, Sm, 'buttondownfcn', @Im_callback );
axis off;
Вы получаете эту картинку. Нажмите на «смайлик», чтобы увидеть, что происходит *:)
*, очевидно, я имею в виду, когда вы запускаете этов октаве, а не здесь!