Getting out of while loop when user says end

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'.

 채택된 답변

Fangjun Jiang
Fangjun Jiang 2019년 7월 16일

0 개 추천

Use isequal(answer,'Yes') or strcmp(answer,'Yes')
'Yes'=='No' will cause the problem.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2019년 7월 16일

0 개 추천

With r2017a or later you can also use
answer == "Yes"

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2019년 7월 16일

댓글:

2019년 7월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by