Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

inputdlg

ユーザー入力を収集するダイアログ ボックスの作成

説明

answer = inputdlg(prompt) は 1 つ以上のテキスト編集フィールドを含むモーダル ダイアログ ボックスを作成し、ユーザーが入力した値を返します。戻り値は文字ベクトルの cell 配列の要素です。cell 配列の最初の要素はダイアログ ボックスの上部の編集フィールドの応答に対応します。2 番目の要素は次の編集フィールドの応答に対応し、以下同様に続きます。

answer = inputdlg(prompt,dlgtitle) はダイアログ ボックスのタイトルを指定します。

answer = inputdlg(prompt,dlgtitle,fieldsize) は各編集フィールドのサイズを指定します。

  • すべてのフィールドに一様な高さを設定するには、fieldsize をスカラーとして指定します。

  • 各フィールドの高さと幅を個別に設定するには、fieldsize を、各行がフィールドに対応する行列として指定します。

answer = inputdlg(prompt,dlgtitle,fieldsize,definput) は各編集フィールドの既定値を指定します。definput 入力引数には prompt と同じ数の要素が含まれていなければなりません。

opts'on' に設定されている場合、answer = inputdlg(prompt,dlgtitle,fieldsize,definput,opts) はダイアログ ボックスが水平方向にサイズ変更できることを指定します。opts が構造体の場合、ダイアログ ボックスが水平方向にサイズ変更できるか、モーダルであるか、および prompt テキストが翻訳されるかどうかを指定します。

すべて折りたたむ

整数とカラーマップ名入力をユーザーから得るための 2 つのテキスト編集フィールドを含むダイアログ ボックスを作成します。

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.

幅が異なる 3 つの編集フィールドが含まれている 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.

オプション構造体を使用するダイアログ ボックスを作成し、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® は入力を文字ベクトルの cell 配列として格納します。str2num を使用して、入力 cell 配列のメンバーを数値に変換します。

ユーザーに数値データ入力を求める入力ダイアログ ボックスを作成します。

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 と入力し、[OK] をクリックしたとします。MATLAB はその答えを文字ベクトルの cell 配列に {'1 2 3 4 -5 6+7'} のように保存します。

str2num を使用して cell 配列を数値に変換します。

user_val = str2num(answer{1})
user_val =

     1     2     3     4    -5    13

入力引数

すべて折りたたむ

テキスト編集フィールドのラベル。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。cell 配列および string 配列では、各要素が編集フィールドのラベルを指定します。両方の種類の配列で、ダイアログ ボックスの編集フィールドを上から下への順で指定します。

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

ダイアログ ボックスのタイトル。文字ベクトルまたは string スカラーとして指定します。

例: 'Data'

テキスト編集フィールドの高さおよび幅。スカラー、ベクトルまたは行列として指定します。

  • fieldsize がスカラーの場合、テキスト行内のすべての編集フィールドの高さをここで指定する。すべての編集フィールドの幅は、ダイアログ ボックスで許容される最大値。

  • fieldsize がプロンプトの数に等しい要素数をもつ列ベクトルまたは行ベクトルである場合、各要素が、ダイアログ ボックスの上から下への順でそれぞれ対応する編集フィールドの高さを指定する。すべての編集フィールドの幅は、ダイアログ ボックスで許容される最大値。

  • fieldsizem 行 2 列の行列で、m がプロンプトの数に等しい場合、各行が対応するプロンプトの編集フィールドのサイズを示す。1 番目の列がテキスト行内の編集フィールドの高さを指定する。2 番目の列が編集フィールドの幅を文字単位で指定する。文字単位の幅は、システム フォントを使用する場合、文字 x の幅に等しくなる。

メモ

編集フィールドの高さが 1 のとき、ユーザーは 1 行のテキストしか入力できません。編集フィールドの高さが他の値のとき、ユーザーは任意の行数のテキストを入力できます。

例: 2 は、ダイアログ ボックス内の各編集フィールドの高さがテキスト 2 行分であることを指定しています。

例: [1;2] は、最初 (最上部) の編集フィールドの高さがテキスト 1 行分で、2 番目の編集フィールドの高さがテキスト 2 行分であることを指定しています。

例: [1 50; 2 10] は、最初 (最上部) の編集フィールドの高さが 1 行分、幅が 50 文字単位であり、2 番目の編集フィールドの高さが 2 行分、幅が 10 文字単位であることを指定しています。

既定の入力値。文字ベクトルの cell 配列または string 配列として指定します。

例: {'Color','1'}

ダイアログ ボックスの設定。'on' または構造体として指定します。opts'on' に設定されている場合、ユーザーはダイアログ ボックスを水平方向にサイズ変更できます。opts が構造体の場合、構造体フィールドが次の表のオプションを指定します。

フィールド

Resize

'off' (既定) または 'on''off' に設定されている場合、ユーザーはダイアログ ボックスをサイズ変更できません。'on' の場合、ユーザーはウィンドウを水平方向にサイズ変更できます。

WindowStyle

'modal' (既定) または 'normal''modal' に設定されている場合、ユーザーは応答するまで他のウィンドウとの対話はできません。

Interpreter

'none' (既定) または 'tex''tex' に設定されている場合、プロンプトは TeX を使用してレンダリングされます。ダイアログ ボックスのタイトルは影響を受けません。

TeX マークアップを使用して、上付き文字や下付き文字の追加、フォントのタイプや色の変更、prompt テキストへの特殊文字の挿入を行うことができます。

修飾子の効果はテキストの末尾まで適用されます。上付き文字と下付き文字は例外であり、次の 1 文字または中かっこで囲まれた文字にのみ適用されます。インタープリターを '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 3 成分に置き換えます。'\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'

出力引数

すべて折りたたむ

ダイアログ ボックスの上から下に向かって、編集フィールドごとに 1 つの入力を含む文字ベクトルの cell 配列を返します。関数 str2num を使用してスペース区切り値およびコンマ区切り値を行ベクトルに、セミコロン区切り値を列ベクトルに変換します。例については、入力の数値への変換を参照してください。

ユーザーが [キャンセル] ボタンをクリックしてダイアログ ボックスを終了すると、answer は空の cell 配列 { } です。

ユーザーがキーボードの Return キーを押してダイアログ ボックスを閉じると、answerdefinput の値です。definput が未定義の場合、answer は空の cell 配列 { } です。

詳細

すべて折りたたむ

モーダル ダイアログ ボックス

モーダル ダイアログ ボックスでは、モーダル ダイアログ ボックスに応答する前に他の 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 より前に導入