Как выбрать данные, которые я хочу построить, с помощью ползунка в Matlab? - PullRequest
0 голосов
/ 18 октября 2019

У меня есть данные в следующей форме:

Данные

с нецелыми (!) Значениями и, конечно, намного больше. Я хочу построить E (y), выбрав x, где я хочу построить с помощью ползунка. Честно говоря, я не очень хорошо привык к Matlab-GUI, поэтому, возможно, моя проблема не очень сложна, или мой код пока немного глупый.

enter code here

handles.figure = figure('Position',[100 100 500 500],'Units','Pixels');
handles.axes1 = axes('Units','Pixels','Position',[60,100,400,300]);
handles.Slider1 = uicontrol('Style','slider','Position',[60 20 400 50],'Min',minx,'Max',maxx,'Value', minx,'SliderStep',[0.1 0.1],'Callback',@SliderCallback);
handles.Edit1 = uicontrol('Style','Edit','Position',[250 450 100 20],'String','Update Me');
handles.Text1 = uicontrol('Style','Text','Position',[180 450 60 20],'String','Slider Value');

guidata(handles.figure,handles); 

function SliderCallback(x,y,E)

    handles = guidata(gcf);
    SliderValue = get(handles.Slider1,'Value');
    indices = find(abs(x-SliderValue)<0.3)
    imin = min(indices)
    imax = max(indices)
    set(handles.Edit1,'String',num2str(SliderValue));
    plot(y(imin:imax),E(imin:imax),'Parent',handles.axes1);
end

В результате получается пустой график с ползунком,Я получаю следующую ошибку:

Неопределенный оператор '-' для входных аргументов типа 'matlab.ui.control.UIControl'.

Ошибка в LiveEditorEvaluationHelperESectionEval8ac6cc3c> SliderCallback (строка 15)indices = find (abs (x-SliderValue) <0.3) </p>

Ошибка при оценке обратного вызова UIControl.

Кто-нибудь знает, как я могу это исправить? Код работает, если я создаю некоторые случайные данные в функции обратного вызова, где ползунок просто определяет параметр, но не в том случае, если я пытаюсь вызвать данные измерения, определяющие индексы, с помощью ползунка.

...