0

既に作成されているすべての図をスライドできるスライダーを生成する "sng_figureslide" 関数を作成します。矢印キーで制御できるようにするには、スライダーをクリックする必要があります。

関数を呼び出すときにスライダーオブジェクトをアクティブにすることができるかどうか疑問に思っているので、事前にスライダーをクリックする必要はありません。

function sng_figureslide

figh=findobj('type','figure');
figs=numel(figh);

% if there are one or zero figures, the slider does not appear
if figs > 1
    sliderstep = 1/(figs-1);
else
    return
end

fignumber = cell2mat(get(figh,'Number'));
sliderfignumber = max(fignumber) + 1;
figure(max(fignumber) +1)
set(gcf,'position',[360 190 560 36]);
set(gcf,'Toolbar','none');
a=annotation('textbox',[0.03 0.2 0.1 0.7],'String',num2str(figs));

uicontrol('Style', 'slider',...
    'Min',1,'Max',figs,'Value',figs,...  
    'Position', [80 10 470 20],...  
    'Callback', {@slider1,figh,a,figs,fignumber,sliderfignumber},...      
    'SliderStep', [sliderstep sliderstep]);
end

function slider1(hObj,~,figh,a,figs,fignumber,sliderfignumber)
    Val = round(get(hObj,'Value'));
    set(a,'String',num2str(Val));
    figure(figh(Val));
    figure(sliderfignumber);
end

また、この機能は多くの人にとってかなり便利だと思いますので、気軽に使ってください。

4

1 に答える 1

1

uicontrol を作成するときは、それにハンドルを保存します。次に、そのハンドルを uicontrol 関数に戻します。

h = uicontrol ( .... )
uicontrol ( h );
于 2016-08-05T15:42:25.483 に答える