MATLAB Answers

Getting out of while loop when user says end

2 views (last 30 days)
Carolyn
Carolyn on 16 Jul 2019
Commented: Carolyn on 16 Jul 2019
I have an image I am taking basic two point measurements on. The user is asked if they want to make another measurement and has the option of 'Yes', 'No', 'Cancel'. They can take as many or as few measurements as they want. I want to start this up if the answer is 'Yes' and re-ask the question after every measurement and keep looping until the answer is 'No' or 'Cancel'. This is what i have:
answer = questdlg('Do you want to make another measurement?');
while answer == 'Yes'
imshow(image)
[x,y] = getpts();
measurement = pdist([x.';y.']);
close
answer = questdlg('Do you want to make another measurement?');
end
But I get an error the 'Matrix dimensions must agree'. I'm assuming that the way I'm looping is incorrect. Can anyone see the problem with the loop? It only gives an error when I select 'No' or 'Cancel'.

  0 Comments

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 16 Jul 2019
Use isequal(answer,'Yes') or strcmp(answer,'Yes')
'Yes'=='No' will cause the problem.

More Answers (1)

Walter Roberson
Walter Roberson on 16 Jul 2019
With r2017a or later you can also use
answer == "Yes"

  0 Comments

Sign in to comment.

Sign in to answer this question.