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

问题描述 投票:0回答:1

我正在使用audioread来绘制音频文件的音频信号。我想要的是沿着绘图的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音频文件的结果50s已经分配给图形

matlab matlab-figure
1个回答
0
投票

以下代码只是一个剪辑,但我认为你明白了。只需将一个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
© www.soinside.com 2019 - 2024. All rights reserved.