Matlab 当图像数量发生变化时,如何自动更改滑块值?
我有两组图像(Matlab 当图像数量发生变化时,如何自动更改滑块值?,matlab,matlab-guide,Matlab,Matlab Guide,我有两组图像(set1:100图像;set2:25图像)。 最初,我使用popupmenu选择100幅图像的set1,并使用滑块查看它们。 假设我的滑块在某一点的值为56 现在,如果我使用弹出菜单选择25幅图像的set2。 当滑块值为56(>max:25)时,滑块控件将消失 Warning: 'slider' control cannot have a 'Value' outside of 'Min'-'Max' range Control will not be rendered until
set1:100图像
;set2:25图像
)。
最初,我使用popupmenu
选择100幅图像的set1
,并使用滑块查看它们。
假设我的滑块在某一点的值为56
现在,如果我使用弹出菜单
选择25幅图像的set2
。
当滑块值为56(>max:25)时,滑块控件将消失
Warning: 'slider' control cannot have a 'Value' outside of 'Min'-'Max' range
Control will not be rendered until all of its parameter values are valid
是否有任何方法可以根据我的popmenu
选择重置滑块
我使用了一个标志
来获得弹出菜单选择
到滑块(u)回调
if popmenu _FLG == 0 % set-1 images (100)
maxNumberOfImages= length(IMGS);
set(hObject, 'Min', 0);
set(hObject, 'Max', maxNumberOfImages);
% set(handles.sliderC, 'Value', 1);
set(hObject, 'SliderStep', [1/maxNumberOfImages , 10/maxNumberOfImages ]);
elseif popmenu == 1 % set-2 images (25)
maxNumberOfImages= length(SERIES_IMGS);
set(hObject, 'Min', 0);
set(hObject, 'Max', maxNumberOfImages);
% set(handles.sliderC, 'Value', 1);
set(hObject, 'SliderStep', [1/maxNumberOfImages , 10/maxNumberOfImages ]);
end
现在,当我使用get获取值时,它也大于25:
value = int32(get(hObject,'Value'));
有什么建议吗
谢谢我能够解决这个问题,如果其他人有类似的问题,我会发帖:
value = int32(get(hObject,'Value'));
if value == 0 || maxNumberOfImages == 1
value = 1;
elseif value > maxNumberOfImages
value = maxNumberOfImages;
end
disp(value);
set(handles.sliderC, 'Value', value);
如果该值大于maxNumberOfImages
,则我将当前句柄值设置为maxNumberOfImages
,这将按照预期重置滑块控件,而不禁用滑块