App Designer LIST BOX data type

조회 수: 19 (최근 30일)
M G
M G 2018년 5월 13일
댓글: M G 2018년 5월 20일
I am trying to use a LIST BOX in App Designer, to assign one of several different values to a variable. For example, to assign a value to "Density", given a choice of several different metals.
This seemed straightforward but I am getting an error message.....
"Error using matlab.ui.control.internal.model.AbstractNumericComponent/set.Value (line 110) 'Value' must be a double scalar."
What is the default data type of a LIST BOX value, and is there a way to change that value to "Double Scalar"
  댓글 수: 1
M G
M G 2018년 5월 13일
BTW: I have found this reply to a similar question.....
https://stackoverflow.com/questions/45122921/numerical-values-associated-with-drop-down-options/45126393#45126393
However, this "answer" applies to UIFigures created programmatically, not within the App Designer framework. It may, however, offer a hint to somebody out there who is more familiar with both App Designer and programmatic UIFigures

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

답변 (1개)

Chris Portal
Chris Portal 2018년 5월 14일
편집: Chris Portal 2018년 5월 14일
The type for the Value property depends on how you've configured the listbox. There are basically 2 scenarios:
  1. Using Items Property Only: If you only configure the Items property, then the Value property needs to be one of the elements of the Items property. In this case, the type for the Value property is a character vector.
  2. Using Items and ItemsData Properties: If you configure both the Items and ItemsData properties, then the listbox will continue to visually present what the Items property has, but the Value property is required to be one of the values contained in ItemsData, whatever type that happens to be. (In this case, it's recommended that both Items and ItemsData be the same length. If they're not, the property reference page describes what the resulting behavior is.)
I'm not sure which scenario you're in, but you can find examples for both in the doc:
  댓글 수: 5
Chris Portal
Chris Portal 2018년 5월 20일
Ah, your pictures on the other post helped. It looks to be a bug in the way the editor is converting your entry. I've logged this issue with the team. As a workaround, you can do this (for either listbox or dropdown):
  1. Clear Out ItemsData: In the property editor for your listbox, delete what you've entered for ItemsData.
  2. Create a StartupFcn: In Design View, right click on an empty part of the figure region, go to Callbacks, and select Add StartupFcn Callback.
  3. Configure ItemsData: In Code View, add a line of code to your StartupFcn callback that configures the ItemsData property as you need. Something like:
app.ListBox.ItemsData = [1 2 3 4];
Hope this gets you going!
M G
M G 2018년 5월 20일
Chris: Thanks for your Answer.
First of all, it is great to know that this is a systemic (bug) problem and not the result of a misunderstanding or insanity on my part!
I had the concept that, if only one could define the data type elsewhere (at start-up)the App would run, but it didn't make sense to me that a fundamental bug like this would still be in App Designer (not a newly introduced package...) and that I'd be the first one to find it. So I spent a lot of energy re-tracing every bit of documentation I could find.
I've not tested your stop-gap solution yet, as I've run to the end of my MatLab trial period and have yet to purchase a License. But as soon as that is in place I will give it a go!

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

카테고리

Help CenterFile Exchange에서 Develop uifigure-Based Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by