Spec-Zone.ru › Octave 6

11.9.2 Проверка типа аргументов

Помимо количества аргументов, можно проверять различные свойства ввода. validatestring используется для строковых аргументов, а validateattributes — для числовых аргументов.

: validstr = validatestring (str, strarray)
: validstr = validatestring (str, strarray, funcname)
: validstr = validatestring (str, strarray, funcname, varname)
: validstr = validatestring (…, position)

Проверьте, является ли str элементом или подстрокой элемента в strarray.

Когда str — это строка, которую нужно проверить, а strarray — ячейковая строка допустимых значений, то validstr будет проверенным форматом str, где проверка определяется как str являющимся членом или подстрокой validstr. Это полезно как для проверки, так и для расширения коротких опций, таких как "r", до их полных форм, таких как "red". Если str является подстрокой validstr, и есть несколько совпадений, то будет возвращено самое короткое совпадение, если все совпадения являются подстроками друг друга. В противном случае будет выведено сообщение об ошибке, потому что расширение str неоднозначно. Все сравнения выполняются без учета регистра.

Дополнительные входные данные funcname, varname и position являются необязательными и сделают любое сгенерированное сообщение об ошибке проверки более конкретным.

Примеры:

validatestring ("r", {"red", "green", "blue"})
⇒ "red"

validatestring ("b", {"red", "green", "blue", "black"})
⇒ error: validatestring: multiple unique matches were found for 'b':
   blue, black

См. также: strcmp, strcmpi, validateattributes, inputParser.

: validateattributes (A, classes, attributes)
: validateattributes (A, classes, attributes, arg_idx)
: validateattributes (A, classes, attributes, func_name)
: validateattributes (A, classes, attributes, func_name, arg_name)
: validateattributes (A, classes, attributes, func_name, arg_name, arg_idx)

Проверка валидности входного аргумента.

Подтверждает, что аргумент A является допустимым, принадлежащим одному из classes и обладающим всеми attributes. Если это не так, генерируется ошибка с отформатированным сообщением. Сообщение об ошибке можно дополнить именем функции fun_name, именем аргумента arg_name и его позицией в входе arg_idx.

classes должно быть ячейковой строкой имен классов (разрешена пустая ячейковая строка). Помимо имени класса, допустимы также следующие имена категорий:

"float"

Значение с плавающей запятой, включающее классы "double" и "single".

"integer"

Целое значение, включающее классы (u)int8, (u)int16, (u)int32, (u)int64.

"numeric"

Числовое значение, включающее либо число с плавающей запятой, либо целое число.

attributes должно быть ячейковой строкой с именами проверок для A. Некоторые из них требуют дополнительного значения, указанного сразу после имени (см. подробности для каждого).

"<="

Все значения меньше или равны следующему значению в attributes.

"<"

Все значения меньше следующего значения в attributes.

">="

Все значения больше или равны следующему значению в attributes.

">"

Все значения больше следующего значения в attributes.

"2d"

Двухмерная матрица. Обратите внимание, что векторы и пустые матрицы имеют 2 измерения, одно из которых имеет длину 1, или оба длиной 0.

"3d"

Не имеет более 3 измерений. Двумерная матрица — это 3-мерная матрица, третье измерение которой имеет длину 1.

"binary"

Все значения равны 1 или 0.

"column"

Значения расположены в одном столбце.

"decreasing"

Ни одно значение не равно NaN, и каждое меньше предыдущего.

"diag"

Значение является диагональной матрицей.

"even"

Все значения являются четными числами.

"finite"

Все значения конечны.

"increasing"

Ни одно значение не равно NaN, и каждое больше предыдущего.

"integer"

Все значения являются целыми числами. Это отличается от использования isinteger, которое проверяет только тип целого числа. Это проверяет, что каждое значение в A является целым числом, т. е. не имеет дробной части.

"ncols"

Количество столбцов равно следующему значению в attributes.

"ndims"

Количество измерений равно следующему значению в attributes.

"nondecreasing"

Ни одно значение не равно NaN, и каждое больше или равно предыдущему.

"nonempty"

Матрица не пустая.

"nonincreasing"

Ни одно значение не равно NaN, и каждое меньше или равно предыдущему.

"nonnan"

Ни одно значение не является NaN.

"nonnegative"

Все значения неотрицательны.

"nonsparse"

Это не разреженная матрица.

"nonzero"

Ни одно значение не равно нулю.

"nrows"

Количество строк равно следующему значению в attributes.

"numel"

Количество элементов равно следующему значению в attributes.

"odd"

Все значения являются нечетными числами.

"positive"

Все значения положительны.

"real"

Это матрица без комплексных значений.

"row"

Значения расположены в одной строке.

"scalar"

Это скаляр.

"size"

Размер имеет длину, равную значениям следующего в attributes. Следующее значение должно быть массивом с длиной для каждого измерения. Чтобы пропустить проверку для определенного измерения, можно использовать NaN.

"square"

Это квадратная матрица.

"vector"

Значения расположены в одном векторе (столбце или строке).

В качестве альтернативы validateattributes существуют несколько более коротких удобных функций для проверки отдельных свойств.

: mustBeFinite (x)

Требуется, чтобы входной параметр x был конечным.

Выводит ошибку, если какой-либо элемент входного параметра x не является конечным, как определено isfinite (x).

См. также: mustBeNonNan, isfinite.

: mustBeGreaterThan (x, c)

Требуется, чтобы входной параметр x был больше c.

Выводит ошибку, если какой-либо элемент входного параметра x не больше c, как определено x > c.

См. также: mustBeGreaterThanOrEqual, mustBeLessThan, gt.

: mustBeGreaterThanOrEqual (x, c)

Требуется, чтобы входной параметр x был больше или равен c.

Выводит ошибку, если какой-либо элемент входного параметра x не больше или равен c, как определено x >= c.

См. также: mustBeGreaterThan, mustBeLessThanOrEqual, ge.

: mustBeInteger (x)

Требуется, чтобы входной параметр x был целого значения (но не обязательно целого типа).

Выводит ошибку, если какой-либо элемент входного параметра x не является конечным, вещественным, целочисленным числовым значением, как определено различными проверками.

См. также: mustBeNumeric.

: mustBeLessThan (x, c)

Требуется, чтобы входной параметр x был меньше c.

Выводит ошибку, если какой-либо элемент входного параметра x не меньше c, как определено x < c.

См. также: mustBeLessThanOrEqual, mustBeGreaterThan, lt.

: mustBeLessThanOrEqual (x, c)

Требуется, чтобы вход был меньше или равен заданному значению.

Выводит ошибку, если какой-либо элемент входного параметра x не меньше или равен c, как определено x <= c.

См. также: mustBeLessThan, mustBeGreaterThanOrEqual, le.

: mustBeMember (x, valid)

Требуется, чтобы входной параметр x был элементом набора заданных допустимых значений.

Вызывает ошибку, если любой элемент входного параметра x не является элементом набора valid, как определено функцией ismember (x).

Примечание для программистов: входные параметры типа char могут вести себя необычно из-за взаимодействия между типами char и cellstring при вызове ismember. Однако, скорее всего, результат будет соответствовать ожидаемому поведению, если вы будете использовать его естественным образом. Для гарантированного поведения преобразуйте все массивы char в cellstrings с помощью cellstr.

См. также: mustBeNonempty, ismember.

: mustBeNegative (x)

Требуется, чтобы входной параметр x был отрицательным.

Вызывает ошибку, если любой элемент входного параметра x не является отрицательным, как определено функцией x < 0.

См. также: mustBeNonnegative.

: mustBeNonempty (x)

Требуется, чтобы входной параметр x был непустым.

Вызывает ошибку, если входной параметр x пустой, как определено функцией isempty (x).

См. также: mustBeMember, mustBeNonzero, isempty.

: mustBeNonNan (x)

Требуется, чтобы входной параметр x не был NaN.

Вызывает ошибку, если любой элемент входного параметра x является NaN, как определено функцией isnan (x).

См. также: mustBeFinite, mustBeNonempty, isnan.

: mustBeNonnegative (x)

Требуется, чтобы входной параметр x не был отрицательным.

Вызывает ошибку, если любой элемент входного параметра x отрицательный, как определено функцией x >= 0.

См. также: mustBeNonzero, mustBePositive.

: mustBeNonpositive (x)

Требуется, чтобы входной параметр x не был положительным.

Вызывает ошибку, если любой элемент входного параметра x положительный, как определено функцией x <= 0.

См. также: mustBeNegative, mustBeNonzero.

: mustBeNonsparse (x)

Требуется, чтобы входной параметр x не был разреженным.

Вызывает ошибку, если входной параметр x разреженный, как определено функцией issparse (x).

См. также: issparse.

: mustBeNonzero (x)

Требуется, чтобы входной параметр x не был нулём.

Вызывает ошибку, если любой элемент входного параметра x равен нулю, как определено функцией x == 0.

См. также: mustBeNonnegative, mustBePositive.

: mustBeNumeric (x)

Требуется, чтобы входной параметр x был числовым.

Вызывает ошибку, если входной параметр x не является числовым, как определено функцией isnumeric (x).

См. также: mustBeNumericOrLogical, isnumeric.

: mustBeNumericOrLogical (x)

Требуется, чтобы входной параметр x был числовым или логическим.

Вызывает ошибку, если входной параметр x не является числовым или логическим, как определено функцией isnumeric (x) || islogical (x).

См. также: mustBeNumeric, isnumeric, islogical.

: mustBePositive (x)

Требуется, чтобы входной параметр x был положительным.

Вызывает ошибку, если любой элемент входного параметра x не является положительным, как определено функцией x > 0.

См. также: mustBeNonnegative, mustBeNonzero.

: mustBeReal (x)

Требуется, чтобы входной параметр x был вещественным.

Вызывает ошибку, если входной параметр x не является вещественным, как определено функцией isreal (x).

См. также: mustBeFinite, mustBeNonNan, isreal.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v6.4.0/Validating-the-type-of-Arguments.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API