Conditionals in Matlab app.designer?

조회 수: 9 (최근 30일)
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras 2021년 1월 20일
댓글: Adam Danz 2021년 1월 20일
I'm trying to design the following app. The user choose one of the following values in the dropmenu and the clicks the button. If the dropmenu is visible for the user AND its value is 'b', a 40 appears on the white window. If not, a 10 appears in the white window.
This is the code I have made, but it doesn`t work
When I choose 'b' in the dropmenu and the click the button, this error appears:
What am I doing wrong in the conditional? Is there any way of achieving what I am looking for?
Thanks!

채택된 답변

Adam Danz
Adam Danz 2021년 1월 20일
Avoid using "==" to test equaltify for non-numeric and non-scalar values.
For strings / character arrays, use,
if strcmp(app.menu1.Value, 'b') && strcmp(app.menu1.Visible,'on')
or use strcmpi() to ignore case.
If the problem persists, share the values in app.menu1.Value.
  댓글 수: 2
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras 2021년 1월 20일
I did the following. It works but I don't know which solution would be better, and if this solution would cause any error in the future.
I have defined "coc" as a private variable to use it along the code, and in the dropmenu's callback I defined the following:
And then, instead of the previous conditional that I have posted in the previous question, I did this:
And it works perfectly. But I'm not sure if it's the best option out there
Adam Danz
Adam Danz 2021년 1월 20일
Its not the best solution because it makes the same mistake I pointed out in my answer.
Also, if coc is binary (true|false), then you don't need app.coc==1. You ony need
if strcmp(app.menu1.Valuem,'b') && app.coc

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by