how to update image preview axis when listbox gets updated?

3 次查看(过去 30 天)
I have a matlab gui listbox (listbox1) that shows my images file name and another axis (images) to show image preview when user clicks on the file name in my listbox. I've created a button 'refresh' to update my listbox values. I managed to update my listbox but my axis is not updating. How do I update this axis as well?
function refreshListboxButton_Callback:
files = dir(fullfile(pwd,'*.jpg'));
handles.images = cell(1, numel(files));
for x = 1 : numel(files)
handles.images{x} = imread(fullfile(pwd,files(x).name));
imshow(handles.images{x});
end
set(handles.listbox1,'string',{files.name});
drawnow();

采纳的回答

Walter Roberson
Walter Roberson 2015-5-25
You need to tell imshow() which axes to draw the image on, unless you only have one axes.
You are updating the content of the handles structure, so you need to consider whether you need to use guidata() to update the master copy of the handles structure. Where is your code getting the handles structure from? You are not passing in the handles structure so handles.images{x} could be creating a new handles structure, but you assume that handles.listbox1 exists. Your code cannot be getting handles by way of shared variable, as shared variables only work with static workspaces and static workspaces require that there be an "end" matching the "function" line but you do not have that "end".

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by