MATLAB Answers

How do I set numerical values to options in a dropdown menu made on appdesigner? I will have multiple drop down menus, the the options in each drop down will need their values added together and display the result.

53 views (last 30 days)
Jonathan Patten
Jonathan Patten on 30 Nov 2018
Edited: Jan Siegmund on 29 Jun 2020
Capture.PNG

  1 Comment

Greg
Greg on 1 Dec 2018
Can you provide more detail? None of your dropdowns appear to be numeric. Are you trying to quantize the non-numeric options, say for gender: male = 1 and female = 2?

Sign in to comment.

Answers (1)

Greg
Greg on 1 Dec 2018
Edited: Greg on 1 Dec 2018
If my assumption in the comment above is accurate, this is a perfect use of the "ItemsData" property of AppDesigner components. The "Items" [male,female] will display in the dropdown list, but the "Value" property will take from the "ItemsData" [1,2] list. Then it's a simple matter of accessing and adding the .Value of each dropdown of concern.
Edit: after investigation, it appears there is no way in "Design View" to make the ItemsData numeric. This is a shame because the tooltip explicitly says "1 x n numeric array" is valid. You can either use str2double, or set the ItemsData in the startupFcn.

  11 Comments

Show 8 older comments
Jonathan Patten
Jonathan Patten on 1 Dec 2018
Edit, working with the startup function, I am now getting results. I am still curious as to how to get results with str2double function.
Greg
Greg on 2 Dec 2018
Email sent.
MWE = Minimum Working Example. It is an example that fully reproduces the problem or behavior of interest, without anything additional. They are great for troubleshooting (bug reports) because you can avoid the confusion of your other code that has nothing to do with the issue.
Jan Siegmund
Jan Siegmund on 29 Jun 2020
@Jonathan Patten Simple, just use the cell of string numbers throughtout your callbacks and whenever you need numeric data, use str2double(app.Dropdown.ItemsData). However MATLAB should let us use numeric data in the first place.

Sign in to comment.