필터 지우기
필터 지우기

Multiselect from listbox and apply to subplot

조회 수: 1 (최근 30일)
Jason
Jason 2014년 6월 18일
편집: Dishant Arora 2014년 6월 19일
Hi. I have a listbox that I populate with say 100 images from a particular directory. I want to be able to select 7 of them, rotate them 90 degrees and then display next to each other in a subplot.
This is my code below for a single image selection, (note that the x position of the position vector for subplot requires the user to change a number in an edit box).
Thanks Jason
ListOfImageNames = get(handles.listbox1, 'string')
baseImageFileName = strcat(cell2mat(ListOfImageNames(Selected)));
fullImageFileName = [folder '\' baseImageFileName]; % Prepend folder.
figure(100);
file=fullImageFileName
IM = imread(file);
IM=imrotate(IM,angle);
subpos
x=0.101*(subpos-1)
positionVector = [0.0+x, 0.8, 0.1, 0.1];
subplot('Position',positionVector);
%subplot(4,7,subpos);
imagesc(IM,[0 5000])
colormap (gray);
axis off;
set(gca,'ytick',[]);
set(gca,'xtick',[]);

채택된 답변

Dishant Arora
Dishant Arora 2014년 6월 18일
Change the max and min property of listbox. Refer this link : http://www.mathworks.in/help/matlab/ref/uicontrol_props.html#bqxoinq
If max-min >1, you can select multiple elements from listbox.
  댓글 수: 2
Jason
Jason 2014년 6월 19일
How do you then access those selected items? Thanks
Dishant Arora
Dishant Arora 2014년 6월 19일
편집: Dishant Arora 2014년 6월 19일
Use ctrl or shift key to access multiple items. Listbox callback is executed at every mouse click or keypress, so you might have to associate a push button with it to direct a callback. See this prototype:
function pushbutton1_callback(hObject , eventdata , handles)
fileNames = get(handles.listbox1 , 'string')
ind = get(handles.listbox1 , 'value')
filesToAccess = fileNames(ind)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by