我对MATLAB很新。
我正在尝试将一个滑块添加为ContinuousValueChange侦听器,以使用GUIDE通过轴连续显示图片。我已经有滑块工作的基本功能(即滑块中的鼠标点击会相应地更改图片),但我想通过拖动滑块来实现连续更新。
出于某种原因,当我尝试使用连续更改中的值更新图片时,我收到错误。我认为这个错误很奇怪,因为当我使用GUI中的下一个/上一个按钮时,我只是单击滑块时没有收到它,也没有收到它
代码:
function slider1_CreateFcn(hObject, eventdata, handles)
handles.sliderListener = addlistener(handles.slider1,'ContinuousValueChange', ...
@(a,b) continuousUpdate(handles));
% function to update displayed picture/counter upon change
function updatePicture(handles)
guiControl = gcf;
files = getappdata(guiControl, 'currentPics');
i = getappdata(guiControl, 'currentCounter');
length = max(size(files));
img = imread(files{i});
imageHandle = imshow(img);
imagesc(img);
% update slider
step = 1/(length - 1);
set(handles.slider1, 'SliderStep', [step step]);
set(handles.slider1, 'Max', length);
function continuousUpdate(handles)
currentValue = get(handles.slider1, 'Value');
setappdata(gcf, 'currentCounter', round(currentValue));
guidata(handles.slider1, handles);
disp(currentValue);
updatePicture(handles);
错误:
Warning: Error occurred while executing the listener callback for event ContinuousValueChange defined for class matlab.ui.control.UIControl:
Cell contents reference from a non-cell array object.
Error in test>updatePicture (line 287)
img = imread(files{i});
Error in test>continuousUpdate (line 582)
updatePicture(handles);
Error in test>@(a,b)continuousUpdate(handles) (line 263)
@(a,b) continuousUpdate(handles));