最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

inputdlg

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

説明

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

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

dims がスカラー値の場合、answer = inputdlg(prompt,dlgtitle,dims) は各編集フィールドの高さを指定します。dims が配列の場合、各配列要素の 1 番目の値で編集フィールドの高さが設定されます。各配列要素の 2 番目の値で編集フィールドの幅が設定されます。

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

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

すべて折りたたむ

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

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

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

ダイアログ ボックスを作成し、オプション構造体に値を指定します。

オプション構造体を使用して TeX をインタープリターに指定します。

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

ユーザーは inputdlg テキスト編集フィールドにスカラー値またはベクトル値を入力できます。MATLAB® は入力を文字ベクトルの cell 配列として格納します。str2num を使用して、入力 cell 配列のメンバーを数値に変換します。

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

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

ユーザーが 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'

テキスト編集フィールドの高さおよび幅 (サイズ)。以下の値の 1 つとして指定します。

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

  • dims が列ベクトルまたは行ベクトルの場合、各要素が、ダイアログ ボックスの上から下への順でそれぞれ対応する編集フィールドの高さ。すべての編集フィールドの幅は、ダイアログ ボックスで許容される最大値。

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

メモ

1 つの例外を除き、編集フィールドの高さおよび幅は、ユーザーが入力できるテキストの量を制限しません。編集フィールドの高さが 1 のとき、ユーザーは複数行のテキストを入力できません。

例: 2

例: [1;2]

例: [1 50; 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 文字または中かっこで囲まれた文字にのみ適用されます。Interpreter プロパティを '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'

次の表に、Interpreter プロパティが '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 より前に導入