Return user inputs from a list dialog box in a vector of selection indices (sel) and a flag indicating how the user closed the dialog box (ok).
The indices in sel are 1-based.
The value of ok is 1 if the user closed the box with the OK button, otherwise it is 0 and sel is empty.
Input arguments are specified in form of key, value pairs.
The "ListString" argument pair must be specified.
Valid key and value pairs are:
"ListString"a cell array of strings with the contents of the list.
"SelectionMode"can be either "Single" or "Multiple" (default).
"ListSize"a vector with two elements width and height defining the size of the list field in pixels. Default is [160 300].
"InitialValue"a vector containing 1-based indices of preselected elements. Default is 1 (first item).
"Name"a string to be used as the dialog caption. Default is "".
"PromptString"a cell array of strings to be displayed above the list field. Default is {}.
"OKString"a string used to label the OK button. Default is "OK".
"CancelString"a string used to label the Cancel button. Default is "Cancel".
Example:
my_options = {"An item", "another", "yet another"};
[sel, ok] = listdlg ("ListString", my_options,
"SelectionMode", "Multiple");
if (ok == 1)
disp ("You selected:");
for i = 1:numel (sel)
disp (sprintf ("\t%s", my_options{sel(i)}));
endfor
else
disp ("You cancelled.");
endif
See also: menu, errordlg, helpdlg, inputdlg, msgbox, questdlg, warndlg.
The following code
disp ("- test listdlg with selectionmode single. No caption, no prompt.");
itemlist = {"An item \\alpha", "another", "yet another"};
s = listdlg ("ListString", itemlist, "SelectionMode", "Single");
imax = numel (s);
for i=1:1:imax
disp (["Selected: ", num2str(i), ": ", itemlist{s(i)}]);
endfor
Produces the following output
- test listdlg with selectionmode single. No caption, no prompt. Selected: 1: An item \alpha
The following code
disp ("- test listdlg with selectionmode and preselection. Has caption and two lines prompt.");
itemlist = {"An item \\alpha", "another", "yet another"};
s = listdlg ("ListString", itemlist, ...
"SelectionMode", "Multiple", ...
"Name", "Selection Dialog", ...
"InitialValue", [1,2,3,4],
"PromptString", {"Select an item...", "...or multiple items"});
imax = numel (s);
for i=1:1:imax
disp (["Selected: ", num2str(i), ": ", itemlist{s(i)}]);
endfor
Produces the following output
- test listdlg with selectionmode and preselection. Has caption and two lines prompt. Selected: 1: An item \alpha Selected: 2: another Selected: 3: yet another
The following code
disp ("- test listdlg with listsize.");
itemlist = {"Neutron", "Electron", "Quark", "Proton", "Neutrino"};
s = listdlg ("ListString", itemlist,
"Name", "Bits and Pieces",
"ListSize", [200 75]);
imax = numel (s);
for i=1:1:imax
disp (["Selected: ", num2str(i), ": ", itemlist{s(i)}]);
endfor
Produces the following output
- test listdlg with listsize. Selected: 1: Neutron
Package: octave