如何在Matlab中的图上使用滑块

时间:2019-02-12 16:36:58

标签: matlab matlab-figure

我正在使用音频读取来绘制音频文件的音频信号。我想要的是沿图的x轴使用滑块,这样我可以通过在水平方向上将其水平扩展来更清晰地看到图的完整图像相同的空间

我已经编写了以下代码,请帮助如何在代码中添加滑块:

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并滚动,以便我可以在已经分配给图形的相同空间中一次清楚地看到200s音频文件的结果

1 个答案:

答案 0 :(得分:0)

下面的代码只是一个片段,但是我想你明白了。只需将uicontrol-element(滑块)放入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