inputdlg

Создайте диалоговое окно, чтобы собрать ввод данных пользователем

Синтаксис

answer = inputdlg(prompt)
answer = inputdlg(prompt,dlgtitle)
answer = inputdlg(prompt,dlgtitle,dims)
answer = inputdlg(prompt,dlgtitle,dims,definput)
answer = inputdlg(prompt,dlgtitle,dims,definput,opts)

Описание

пример

answer = inputdlg(prompt) создает модальное диалоговое окно, содержащее одно или несколько текстовых полей редактирования, и возвращает значения, вводимые пользователем. Возвращаемые значения являются элементами массива ячеек из символьных векторов. Первый элемент массива ячеек соответствует ответу в поле редактирования наверху диалогового окна. Второй элемент соответствует следующему ответу поля редактирования и так далее.

пример

answer = inputdlg(prompt,dlgtitle) задает заголовок для диалогового окна.

пример

answer = inputdlg(prompt,dlgtitle,dims)задает высоту каждого поля редактирования, когда dims является скалярным значением. Когда dims является массивом, первое значение в каждом элементе массива устанавливает высоту поля редактирования. Второе значение в каждом элементе массива устанавливает ширину поля редактирования.

пример

answer = inputdlg(prompt,dlgtitle,dims,definput) задает значение по умолчанию для каждого поля редактирования. Входной параметр definput должен содержать то же число элементов как prompt.

пример

answer = inputdlg(prompt,dlgtitle,dims,definput,opts)указывает, что диалоговое окно изменяемого размера в горизонтальном направлении, когда opts установлен в 'on'. Когда opts является структурой, он задает, изменяемого размера ли диалоговое окно в горизонтальном направлении, модально ли это, и интерпретирован ли текст prompt.

Примеры

свернуть все

Создайте диалоговое окно, которое содержит два текстовых поля редактирования, чтобы получить входные параметры имени целочисленной и палитры от пользователей.

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® хранит вход как массив ячеек из символьных векторов. Преобразуйте члена входного массива ячеек к номеру, с помощью str2num.

Создайте входное диалоговое окно, которое просит, чтобы пользователи ввели числовые данные.

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

Предположим, что пользователь вводит 1 2 3 4 -5 6+7, и затем нажимает OK. 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'

Текстовая высота поля редактирования и ширина (размерности), заданные как одно из этих значений:

  • Если dims является скаляром, то он задает высоту для всех полей редактирования. Высота является расстоянием между базовыми линиями двух строк текста. Ширина для всех полей редактирования является максимумом, который позволяет диалоговое окно.

  • Если dims является вектор-столбцом или вектором - строкой, то каждый элемент задает высоту каждого соответствующего поля редактирования от верхней части до нижней части диалогового окна. Ширина для всех полей редактирования является максимумом, который позволяет диалоговое окно.

  • Если dims является массивом, то это должен быть размер m-2, где m является количеством подсказок в диалоговом окне. Каждая строка относится к полю редактирования для соответствующей подсказки. Первый столбец задает высоту поля редактирования в строках текста. Второй столбец задает ширину того поля редактирования в символьных модулях. Ширина символьного модуля равняется ширине буквы x при использовании системного шрифта.

Примечание

За одним исключением высота и ширина полей редактирования не ограничивают сумму текста, который могут ввести пользователи. Когда высота поля редактирования равняется 1, пользователи не могут ввести несколько строк текста.

Пример 2

Пример: [1;2]

Пример: [1 50; 2 10]

Входное значение по умолчанию или значения, заданные как массив ячеек из символьных векторов или массив строк.

Пример: {'Color','1'}

Настройки диалогового окна, заданные как 'on' или структура. Когда opts установлен в 'on', затем пользователи могут изменить размер диалогового окна в горизонтальном направлении. Когда opts является структурой, поля структуры задают опции в следующей таблице.

Поле

Значения

Resize

'off' (значение по умолчанию) или 'on'. Если установлено в 'off', то пользователи не могут изменить размер диалогового окна. Если 'on', то пользователи могут изменить размер окна горизонтально.

WindowStyle

'modal' (значение по умолчанию) или 'normal'. Если установлено в 'modal', то пользователи не могут взаимодействовать с другими окнами перед ответом.

Interpreter

'none' (значение по умолчанию) или 'tex'. Если установлено в 'tex', то подсказка представляется с помощью Техаса. Заголовок диалогового окна не затронут.

Используйте синтаксис TeX, чтобы добавить верхние индексы и индексы, изменить тип шрифта и окрасить и включать специальные символы в текст prompt.

Модификаторы остаются в силе до конца текста. Верхние индексы и индексы являются исключением, потому что они изменяют только следующий символ или символы в фигурных скобках. Когда вы устанавливаете свойство Interpreter на 'tex', поддерживаемые модификаторы следующие.

МодификаторОписаниеПример
^{ }Верхний индекс'text^{superscript}'
_{ }Индекс'text_{subscript}'
\bfBold font'\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'

В этой таблице перечислены поддерживаемые специальные символы со свойством 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'

Выходные аргументы

свернуть все

Возвращает массив ячеек из символьных векторов, содержащий один вход на поле редактирования, начинающее с верхней части диалогового окна. Используйте функцию str2num, чтобы преобразовать разграниченные пробелом и разграниченные запятой значения в векторы - строки и разграниченные точкой с запятой значения в вектор-столбцы. Для примера смотрите, Преобразовывают Вход в Числовые значения.

Если пользователь нажимает кнопку Cancel, чтобы закрыть диалоговое окно, то answer является массивом пустой ячейки, { }.

Если пользователь нажимает клавишу Return клавиатуры, чтобы закрыть диалоговое окно, то answer является значением definput. Если 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