Conditionals in Matlab app.designer?

5 vues (au cours des 30 derniers jours)
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras le 20 Jan 2021
Commenté : Adam Danz le 20 Jan 2021
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!

Réponse acceptée

Adam Danz
Adam Danz le 20 Jan 2021
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 commentaires
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras le 20 Jan 2021
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 le 20 Jan 2021
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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Develop Apps Using App Designer dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by