Hello everyone, I have created this function to show multiple dicom images and select one of them:
for z=1:size(read)
archive = read(z).name;
R3 = (dicomread(archive));
imshow(R3);
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
promptMessage = sprintf('Select the first image\nmanually');
titleBarCaption = 'Manual';
button = questdlg(promptMessage, titleBarCaption, ...
'Next', 'Select', 'Previous', 'Next');
if strcmpi(button, 'Previous')
¿¿??
end
if strcmpi(button, 'Select')
%I execute the code
end
end
My question is: how could I go back to the previous image when I push the "Previous" button without to break the for loop? What should I modify?
Thank you so much.

 采纳的回答

z = 1;
while z <= length(read)
archive = read(z).name;
R3 = (dicomread(archive));
imshow(R3);
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
promptMessage = sprintf('Select the first image\nmanually');
titleBarCaption = 'Manual';
button = questdlg(promptMessage, titleBarCaption, ...
'Next', 'Select', 'Previous', 'Next');
if strcmpi(button, 'Previous')
z = z - 1;
continue;
end
if strcmpi(button, 'Next')
z = z + 1;
continue;
end
if strcmpi(button, 'Select')
%I execute the code
....
break; %leave while loop
end
end

2 个评论

read() is the name of a built-in function so he probably doesn't want to use that.
It works perfectly! Thank you so much again, you are amazing.
The real directory name is called "lee_archivos" because I'm spanish, and I had to change some names (like 'Next', 'Previous'...) here in my Question in order to make it clearer for everyone. Thank you anyway!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by