Вы можете построить свои 2 синуса / косинуса в функции, а затем использовать обратный вызов для обновления своего графика, здесь я обновляю фазу синусного графика в функции обратного вызова call_S
:
function [] = slider_plot()
% Plot different plots according to slider location.
S.fh = figure('position',[300 300 300 300],....
'resize','off');
S.x = 0:.01:4*pi; %range.
S.ax = axes('unit','pix',...
'position',[20 80 260 210]);
S.sin = plot(S.x,sin(S.x),'r'); %sinus phase will move
hold on
S.cos = plot(S.x,cos(S.x),'b');
S.sl = uicontrol('style','slide',...
'position',[20 10 260 30],...
'min',0,'max',3*pi/2,'val',0,... %default phase = 0
'sliderstep',[0.1 0.1],...
'callback',{@call_S,S});
function [] = call_S(varargin)
% Callback for the phase slider.
[h,S] = varargin{[1,3]}; % calling handle and data structure.
set(S.sin,'ydata',sin(S.x + get(h,'value'))) %set the new phase
В этом случае я использую ползунок, но вы также можете использовать положение мыши для определения новой фазы.
Результат:

И вы можете перемещать ползунок для сдвига фазы:
