Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

inputdlg

创建收集用户输入的对话框

说明

示例

answer = inputdlg(prompt) 创建包含一个或多个文本编辑字段的模态对话框,并返回用户输入的值。返回值是字符向量元胞数组的元素。元胞数组的第一个元素对应于对话框顶部编辑字段中的响应。第二个元素对应于下一个编辑字段中的响应,依此类推。

示例

answer = inputdlg(prompt,dlgtitle) 指定对话框的标题。

示例

answer = inputdlg(prompt,dlgtitle,fieldsize) 指定每个编辑字段的大小。

  • 要为所有字段设置统一高度,请将 fieldsize 指定为标量。

  • 要单独设置每个字段的高度和宽度,请将 fieldsize 指定为矩阵,其中每行对应一个字段。

示例

answer = inputdlg(prompt,dlgtitle,fieldsize,definput) 指定每个编辑字段的默认值。definput 输入参量包含的元素数量必须与 prompt 相同。

示例

answer = inputdlg(prompt,dlgtitle,fieldsize,definput,opts) 指定当 opts 设置为 'on' 时,对话框可在水平方向调整大小。当 opts 是结构体时,它指定对话框是否可在水平方向调整大小、是否为模态,以及是否解释 prompt 文本。

示例

全部折叠

创建一个对话框,其中包含两个文本编辑字段,用于收集用户输入的整数和颜色图名称。

prompt = {'Enter matrix size:','Enter colormap name:'};
dlgtitle = 'Input';
fieldsize = [1 45; 1 45];
definput = {'20','hsv'};
answer = inputdlg(prompt,dlgtitle,fieldsize,definput)

Input dialog box with two edits fields for entering matrix size and colormap name. OK and Cancel buttons appear below the edit fields.

创建一个标题为 Customer 的输入对话框,其中包含三个不同宽度的编辑字段。

x = inputdlg({'Name','Telephone','Account'},...
              'Customer', [1 50; 1 12; 1 7]); 

Input dialog box with three edit fields of different lengths for entering customer name, telephone number, and account number.

创建一个对话框,该对话框使用 options 结构体以 TeX 标记形式呈现提示。

通过指定以下内容来定义对话框选项:

  • 包含 \theta 字符序列的提示

  • 对话框标题

  • 默认输入值为 30

  • 编辑字段高度等于 1 个文本行,宽度等于 40 个字符单元

  • TeX 作为解释器

然后,通过指定这些选项来创建输入对话框。

prompt = {'Enter a value of \theta (in degrees)'};
dlgtitle = 'Theta Value';
fieldsize = [1 40];
definput = {'30'};
opts.Interpreter = 'tex';
answer = inputdlg(prompt,dlgtitle,fieldsize,definput,opts);

Dialog box with one edit field that accepts a value of theta in degrees.

用户可在 inputdlg 文本编辑字段中输入标量或向量值。MATLAB® 将以字符向量元胞数组的形式存储这些输入。可以使用 str2num 将输入元胞数组的成员转换为数字。

创建一个要求用户输入数值数据的输入对话框。

answer = inputdlg('Enter space-separated numbers:',...
             'Sample', [1 50])

Input dialog box that prompts users to enter space-separated numbers in the edit field.

假设用户输入 1 2 3 4 -5 6+7,然后点击确定。MATLAB 将以字符向量元胞数组的形式存储答案 - {'1 2 3 4 -5 6+7'}

使用 str2num 将该元胞数组转换为数字。

user_val = str2num(answer{1})
user_val =

     1     2     3     4    -5    13

输入参数

全部折叠

文本编辑字段标签,指定为字符向量、字符向量元胞数组或字符串数组。对于元胞数组和字符串数组,每个元素指定一个编辑字段标签。这两种数组都按从上到下的顺序指定对话框中的编辑字段。

示例: {'First Name','Last Name'}

对话框标题,指定为字符向量或字符串标量。

示例: 'Data'

文本编辑字段的高度和宽度,指定为标量、向量或矩阵。

  • 如果 fieldsize 是标量,则它指定文本行中所有编辑字段的高度。所有编辑字段的宽度是对话框允许的最大宽度。

  • 如果 fieldsize 是其元素数量等于提示数量的列或行向量,则每个元素指定对话框中从上到下每个对应编辑字段的高度。所有编辑字段的宽度是对话框允许的最大宽度。

  • 如果 fieldsizem×2 矩阵,其中 m 等于提示数量,则每行都指向对应提示的编辑字段的大小。第一列指定文本行中编辑字段的高度。第二列指定该编辑字段的宽度(以字符为单位)。使用系统字体时,字符单元的宽度等于字母 x 的宽度。

注意

当编辑字段高度为 1 时,用户只能输入单行文本。当编辑字段高度为任何其他值时,用户可以输入任意数量的文本行。

示例: 2 指定对话框中每个编辑字段的高度为两个文本行。

示例: [1;2] 指定第一个(最上面的)编辑字段的高度为一个文本行,第二个编辑字段的高度为两个文本行。

示例: [1 50; 2 10] 指定第一个(最上面的)编辑字段的高度为一个文本行,宽度为 50 个字符单元;第二个编辑字段的高度为两个文本行,宽度为 10 个字符单元。

默认的一个或多个输入值,指定为字符向量元胞数组或字符串数组。

示例: {'Color','1'}

对话框设置,指定为 'on' 或结构体。当 opts 设置为 'on' 时,用户可在水平方向调整对话框大小。当 opts 是结构体时,结构体字段指定下表中的选项。

字段

Resize

'off'(默认值)或 'on'。如果设置为 'off',则用户不能调整对话框大小。如果设置为 'on',则用户可以水平调整窗口大小。

WindowStyle

'modal'(默认值)或 'normal'。如果设置为 'modal',则用户必须先做出响应,然后才能与其他窗口交互。

Interpreter

'none'(默认值)或 'tex'。如果设置为 'tex',则使用 TeX 呈现提示。对话框标题不受影响。

使用 TeX 标记可添加上标和下标、修改字体类型和颜色,以及在 prompt 文本中包含特殊字符。

修饰符会一直作用到文本结尾,但上标和下标除外,因为它们仅修饰下一个字符或花括号中的字符。当您将解释器设置为 'tex' 时,支持的修饰符如下所示。

修饰符描述示例
^{ }上标'text^{superscript}'
_{ }下标'text_{subscript}'
\bf粗体'\bf text'
\it斜体'\it text'
\sl伪斜体(通常与斜体相同)'\sl text'
\rm常规字体'\rm text'
\fontname{specifier}字体名称 - 将 specifier 替换为字体系列的名称。您可以将此说明符与其他修饰符结合使用。'\fontname{Courier} text'
\fontsize{specifier}字体大小 - 将 specifier 替换为以磅为单位的数值标量值。'\fontsize{15} text'
\color{specifier}字体颜色 - 将 specifier 替换为以下颜色之一:redgreenyellowmagentablueblackwhitegraydarkGreenorangelightBlue'\color{magenta} text'
\color[rgb]{specifier}自定义字体颜色 - 将 specifier 替换为三元素 RGB 三元组。'\color[rgb]{0,0.5,0.5} text'

下表列出了 'tex' 解释器所支持的特殊字符。

字符序列符号字符序列符号字符序列符号

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

ϕ

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

示例: 'on'

示例: opts.Resize = 'on'

示例: opts.WindowStyle = 'normal'

示例: opts.Interpreter = 'tex'

输出参量

全部折叠

返回一个字符向量元胞数组,其中包含对应于对话框中从上到下的每个编辑字段的输入。使用 str2num 函数将以空格和逗号分隔的值转换为行向量,将以分号分隔的值转换为列向量。有关示例,请参阅将输入转换为数值

如果用户点击取消按钮关闭对话框,则 answer 是一个空元胞数组 { }

如果用户按键盘上的 Return 键关闭对话框,则 answerdefinput 的值。如果 definput 未定义,则 answer 是空元胞数组 { }

详细信息

全部折叠

模态对话框

模态对话框阻止用户在响应该对话框之前与其他 MATLAB 窗口进行交互。

提示

  • 即使模态输入对话框处于活动状态,MATLAB 程序也会继续执行。要阻止程序执行直到用户做出响应,可以使用 uiwait 函数。

用户可在输入对话框中输入标量或向量值。使用 str2num 将以空格和逗号分隔的值转换为行向量,将以分号分隔的值转换为列向量。例如,如果 answer{1} 包含 '1 2 3;4 -5 6+7i',则转换将生成:

input = str2num(answer{1})
input =
   1.0000     2.0000     3.0000
   4.0000    -5.0000     6.0000 + 7.0000i

版本历史记录

在 R2006a 之前推出

另请参阅

|