MATLAB Answers

create menu with input

29 views (last 30 days)
Ali Tawfik
Ali Tawfik on 29 Jan 2020
Edited: Fangjun Jiang on 30 Jan 2020
Hey all,
I have been trying to create menu with input command, I wanna the menu displays choices as buttons in a dialog box depends on how many element number I added
For example I wanna my output to be as the following
x=input('enter elments number' :) % which as an example =3
then
output = menu('Choose a element number','1 ','2 ','3')
I wanna do it automatically so if x=input('enter elments number' :) % which as an example =4
output = menu('Choose a element number','1 ','2 ','3','4')
Can anyone help ?
Thanks,
~

  0 Comments

Sign in to comment.

Answers (2)

Fangjun Jiang
Fangjun Jiang on 29 Jan 2020
x=5;
xx=string(1:x);
menu('choose',xx(:))

  4 Comments

Show 1 older comment
Fangjun Jiang
Fangjun Jiang on 29 Jan 2020
this seems to work in R2016b
x=5;
xx=num2str([1:x]');
yy=mat2cell(xx,ones(x,1),1);
menu('choose',yy(:))
Ali Tawfik
Ali Tawfik on 29 Jan 2020
Thanks again for your prompt relpy.
It's working now, I just have one more question, I would like to have specfic data for each selection in the menu but not working, could you help me
So I would like my have an output for each selection from the menu , is it possible,
Thanks,
Fangjun Jiang
Fangjun Jiang on 29 Jan 2020
menu() returns the index number so you konw which button the user clicked. To get different data based on this input, you need to do it afterwards in your program.

Sign in to comment.


Ali Tawfik
Ali Tawfik on 30 Jan 2020
I think you misunderstood me, because I would like to add (for loop , or while )to add for each index a command then store them ?
Like the following
x=5;
xx=num2str([1:x]');
yy=mat2cell(xx,ones(x,1),1);
menu('choose',yy(:))
for menu(1)
f=2
menu(2)
f=3 and so on...
Hope you get what I want

  1 Comment

Fangjun Jiang
Fangjun Jiang on 30 Jan 2020
What is "for menu(1)", "menu(2)"? There is no such syntax. I could only guess this is what you want.
f=[10, 200, 3000];
selection=menu('choose','1','2','3');
output=f(selection)

Sign in to comment.

Sign in to answer this question.

Tags


Translated by