39 views (last 30 days)
Show older comments
son on 20 Aug 2014
Commented: Image Analyst on 17 May 2020
Accepted Answer: Star Strider
Open in MATLAB Online
hi, please help.
i create a multiple choice box and then display value of a in a message box but i don't know how to put the value of 'a' in the message box.
close all
clear all
choice = menu('Choose optical fiber type','Single-mode fiber ( G.652 )','Dispersion-shifted fiber ( G.653 )','Non-zero dispersion-shifted fiber ( G.655 )');
if choice==1
a=1;
elseif choice==2
a=2;
else
a=3;
end
h = msgbox(Message)
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
Sign in to answer this question.
Accepted Answer
Star Strider on 20 Aug 2014
Open in MATLAB Online
Is this:
h = msgbox(sprintf('You chose %d',a))
something like what you want to do?
2 Comments Show NoneHide None
Show NoneHide None
son on 20 Aug 2014
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_232692
Edited: son on 20 Aug 2014
Open in MATLAB Online
hi, i use sprintf code but now it can't display the special symbol alpha
clear all
close all
%%Insert value in Matlab
dlg_title = 'Insert Factor Value';
x1 = inputdlg('Enter number of channels:',dlg_title, [1 50]);
n = str2num(x1{:});
x2 = inputdlg('Enter input power for each channel (mW):',dlg_title, [1 50]);
p = str2num(x2{:})*10^-3;
x3 = inputdlg('Enter channel spacing (nm):',dlg_title, [1 50]);
delta_lambda = str2num(x3{:})*10^-9;
CreateStruct.Interpreter = 'tex';
CreateStruct.WindowStyle = 'modal';
choice = menu('Choose optical fiber type','Single-mode fiber ( G.652 )','Dispersion-shifted fiber ( G.653 )','Non-zero dispersion-shifted fiber ( G.655 )');
if choice==1
alphadb = 0.20;
dispersion=16;
slope=0.080;
A=80;
elseif choice==2
alphadb = 0.22;
dispersion=0;
slope=0.075;
A=50;
else
alphadb = 0.23;
dispersion=3;
slope=0.050;
A=72;
end
h = msgbox({sprintf('Fibre attenuation: \alpha = %g (dB/km)',alphadb)
'Derivative dispersion coefficient: s = dD/d\lambda = 0.075 (ps/nm^2.km)' },'Standard Values',CreateStruct);
Star Strider on 20 Aug 2014
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_232703
Open in MATLAB Online
In sprintf, single ‘\’ are control characters for it and will throw an error if sprintf doesn’t recognise a valid control sequence, so to get it to print a ‘\’ that the TeX interpreter will see and interpret requires a double ‘\\’.
This worked for me, displaying both alpha and lambda as special characters:
h = msgbox({sprintf('Fibre attenuation: \\alpha = %g (dB/km)',alphadb)
'Derivative dispersion coefficient: s = dD/d\lambda = 0.075 (ps/nm^2.km)' },'Standard Values',CreateStruct);
Sign in to comment.
More Answers (3)
Image Analyst on 20 Aug 2014
Open in MATLAB Online
son, you don't need to get the handle from the message box if you don't ever use it. And you might want to use uiwait() and make it modal, rather than the way you and the others did it, so that it waits for the user to click OK before blasting onwards, executing subsequent code before the users have even had a chance to click OK yet.
message = sprintf('You clicked on button #%d,\nwhich set a = %f', choice, a);
uiwait(msgbox(message, 'modal'));
Alternatively you can use helpdlg() instead of msgbox() if you want an "text balloon" displayed or warndlg() if you want an exclamation point displayed.
uiwait(helpdlg(message)); % Has text balloon
uiwait(warndlg(message)); % Has exclamation symbol
Hope this helps. Vote for my answer if it was helpful additional information.
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
Ben11 on 20 Aug 2014
Open in MATLAB Online
You can use sprintf to format the message:
Message = sprintf('The value selected is %d\n',a);
h = msgbox(Message)
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
son on 20 Aug 2014
woa, so easy, many thanks
4 Comments Show 2 older commentsHide 2 older comments
Show 2 older commentsHide 2 older comments
Star Strider on 20 Aug 2014
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_232686
My pleasure!
Eduardo Rey on 11 Mar 2020
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_808808
Edited: Eduardo Rey on 11 Mar 2020
How do I display a list of values in a message box? For example, I have 10 variables:
var1 = 10e-3
var2 = 12e-3
...and so on. Basically what I want it to look like is:
var1 name: 10e-3
var2 name: 12e-3
Victoria Viridiana Cabrera Díaz on 17 May 2020
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_848491
Open in MATLAB Online
Eduardo Rey, hope this helps
uiwait stops your code from keeping on running until you click 'ok' in the message box
uiwait(msgbox(sprintf('var1 name: %2.3g \n var2name: %2.3g',var1,var2)));
Image Analyst on 17 May 2020
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/151692-display-value-in-message-box#comment_848697
Open in MATLAB Online
If you don't know how many there will be, you might want to display them all in a scrollable listbox. For example, if there were thousands of numbers you wouldn't want a msgbox.
r = rand(100, 1); % Your list of numbers.
list = num2str(r) % Turn into strings.
% Now display all the numbers in a scrollable listbox.
[indx,tf] = listdlg('ListString',list)
Sign in to comment.
Sign in to answer this question.
See Also
Categories
MATLABProgrammingFunctionsFunction Creation
Find more on Function Creation in Help Center and File Exchange
Tags
- display-message-box-matlab
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)
Contact your local office