主要内容

inputdlg

R2026b

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

描述

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 是 1×2 向量,则对话框中的所有字段具有统一的宽度和高度。第一个元素指定每个编辑字段的高度,第二个元素指定每个编辑字段的宽度。在其他情况下,如果 fieldsize 是其元素数量等于提示数量的列或行向量,则每个元素指定对话框中从上到下每个对应编辑字段的高度。所有编辑字段的宽度是对话框允许的最大宽度。

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

注意

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

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

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

示例: [1 45] 指定每个编辑字段的高度为一个文本行,宽度为 45 个字符单元。

示例: [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 替换为以下颜色之一:red、green、yellow、magenta、blue、black、white、gray、darkGreen、orange 或 lightBlue。"\color{magenta} text"
\color[rgb]{specifier}自定义字体颜色 - 将 specifier 替换为三元素 RGB 三元组。"\color[rgb]{0,0.5,0.5} text"

下表列出了 "tex" 解释器所支持的特殊字符序列。某些符号看起来与它们在 MATLAB 中的样子略有不同。

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

\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 键关闭对话框,则 answer 是 definput 的值。如果 definput 未定义,则 answer 是空元胞数组 { }。

详细信息

全部折叠

提示

  • 用户可在输入对话框中输入标量或向量值。使用 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 之前推出

另请参阅

|