如何在matlab中的图表上使用滑块

How to use slider on graph plot in matlab

我正在使用 audioread 来绘制音频的音频信号 file.What 我想要的是沿着绘图的 x 轴使用滑块,这样我可以更清楚地看到绘图的完整图像以 space

的相同数量水平扩展它

我写了下面的代码,请帮忙看看如何在代码中添加滑块:

function upload_Callback(hObject, eventdata, handles)
filename = uigetfile({'*.mp3';'*.wav';'*.wma';'*.ogg';'*.*'},'File Selector');
handles.filename=filename;                      
guidata(hObject,handles);
[y,fs] = audioread(filename);
dt = 1/fs;
t = 0:dt:(length(y)*dt)-dt;

N=length(y);
slength=N/fs;

handles.t=slength;

set(handles.audio_duration,'String',num2str(handles.t));

plot(handles.audio_signal,t,y);
xlabel(handles.audio_signal,'')
ylabel(handles.audio_signal,'Amplitude')

我希望 x 轴为 50s 并有一个滚动条,这样我就可以在已经分配给图形

的同一个 space 中一次清楚地看到 200s 音频文件的结果 50s ]

下面的代码只是一个片段,但我想你明白了。只需将一个 uicontrol 元素(滑块)放入您的 gui 并附加一个回调函数。如果您移动该滑块,回调函数将被执行,您可以使用滑块中的值来设置轴限制。

h = uicontrol('style','slider','position',[100 250 300 20],'min',0,'max',5,'callback',@fct);

function fct(source,eventdata)

    n=get(h,'value');
    plot(x,y);
    xlim([0 n])
end