Vector as ItemsData property in List Box

11 Ansichten (letzte 30 Tage)
Oskar Kilgus
Oskar Kilgus am 20 Aug. 2022
Beantwortet: Oskar Kilgus am 21 Aug. 2022
Hi all,
im coding a fairly easy app with app designer and im struggling with the input/output for List Box property "ItemsData".
What i want to do is to show the user 2 options ("Items") in a list-box. These options then lead to vectors of 2 numbers ("ItemsData"). Lets say:
With ItemsData(Option 1) = [2950 3350] and ItemsData(Option 2) = [3600 4500]
Now i want to use these 2 integers in my main function and i cant figure out how to do the indexing right. I tried using a cell array as ItemsData with combined indexing:
A = B{1,1}(1,1)
which leeds to an error because of the curly brackets.
If it is any easier with a Switch or DropDown its fine too! There are just 2 options.
Thanks for any help on this!

Akzeptierte Antwort

Oskar Kilgus
Oskar Kilgus am 21 Aug. 2022
I found a way to do it (If anyone is having trouble with this issue in the future)
1) List-Box ItemsData as 1x2 numeric vector:
[1 2]
2) value-changed function callback:
% Value changed function: choosefromListBox
function choosefromListBoxValueChanged(app, event)
app.whatever = str2num(app.choosefromListBox.Value)
end
3) reference in other function:
app.whatever(1,1) %returns 1
______________________________
Thanks @Simon Chan for your effort!

Weitere Antworten (1)

Simon Chan
Simon Chan am 21 Aug. 2022
Suppose the listbox is defined as follows and ItemsData are given in your example.
app.ListBox = uilistbox(app.UIFigure);
You may get the data directly via the following:
A = app.ListBox.Value
  8 Kommentare
Simon Chan
Simon Chan am 21 Aug. 2022
Could you please check whether the following lines gives the correct values to you or not?
app.choosefromListBox.Value(1) % gives 2950 to another function
app.choosefromListBox.Value(2) % gives 3350 to another function
Oskar Kilgus
Oskar Kilgus am 21 Aug. 2022
Bearbeitet: Oskar Kilgus am 21 Aug. 2022
I tried exactly that (see the code i supplied) and it resulted in the error
"'Value' must be a double scalar within the range of 'Limits'."
The interesting value at the end of the function is m(o,:) = mean(p). I tried it again and now i end up with m=[0; NaN]. For the next iteration i still end up with the error message above!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by