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
,这将按照预期重置滑块控件,而不禁用滑块