Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中选择要使用滑块绘制的数据?_Matlab_User Interface_Plot_Uislider - Fatal编程技术网

如何在Matlab中选择要使用滑块绘制的数据?

如何在Matlab中选择要使用滑块绘制的数据?,matlab,user-interface,plot,uislider,Matlab,User Interface,Plot,Uislider,我有以下形状的数据: 使用非整数(!)值,当然更大。 我要绘制E(y),选择要使用滑块绘制的x。老实说,我不太习惯MatlabGUI,所以可能我的问题不是很复杂,或者我的代码到目前为止有点愚蠢 enter code here handles.figure = figure('Position',[100 100 500 500],'Units','Pixels'); handles.axes1 = axes('Units','Pixels','Position',[60,100,400,30

我有以下形状的数据:

使用非整数(!)值,当然更大。 我要绘制E(y),选择要使用滑块绘制的x。老实说,我不太习惯MatlabGUI,所以可能我的问题不是很复杂,或者我的代码到目前为止有点愚蠢

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
在此处输入代码
handles.figure=图形('Position',[100 500],'Units','Pixels');
handles.axes1=轴('Units','Pixels','Position',[60100400300]);
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);
功能滑块回调(x、y、E)
句柄=GUI数据(gcf);
SliderValue=get(handles.Slider1,'Value');
索引=查找(abs(x-SliderValue)滑块回调
(第15行)

index=find(程序调用的abs(x-SliderValue),函数
SliderCallback
接收滑块的句柄(
handles.Slider1
)作为第一个参数,并将其分配给
x
,这会导致问题,因为
x
不再是一个
double
的向量,而是一个图形句柄。我们需要更多地了解程序,但我怀疑,只要更改定义回调的行,可能会解决问题。请替换t的回调定义他通过
处理滑块。Slider1=uicontrol('Style','slider',…,'Callback',@(s,e)SliderCallback(x,y,Z));
。这很有效。你是我的英雄。