Как использовать слайдер на графике графика в Matlab - PullRequest
0 голосов
/ 12 февраля 2019

Я использую аудиоролик для построения аудиосигнала аудиофайла. Мне нужно использовать ползунок вдоль оси 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')

Я хочу, чтобы ось х была 50 с и иметьпрокрутка, чтобы я мог видеть результаты аудиофайла 200-х годов четко по 50-и за один раз в том же пространстве, уже выделенном для графика

1 Ответ

0 голосов
/ 13 февраля 2019

Следующий код - просто отрывок, но я думаю, вы поняли идею.Просто поместите элемент uicontrol (слайдер) в ваш графический интерфейс и присоедините функцию обратного вызова.Если вы переместите этот ползунок, будет выполнена функция обратного вызова, и вы можете использовать значение из вашего ползунка, чтобы установить пределы оси.

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
...