exponenta event banner

mustBeFinite

Проверить конечное значение

Описание

пример

mustBeFinite(value) выдает ошибку, если value не является конечным. Числовое значение является конечным, если оно не является NaN или Inf. Эта функция не возвращает значение.

mustBeFinite вызывает следующую функцию, чтобы определить, является ли ввод конечным:

Поддержка классов: Все числовые классы, logical, charи классы MATLAB ®, которые перегружаютisfinite.

Эта функция игнорирует входные аргументы, которые являются пустыми значениями. Поэтому при пустом значении аргумента свойства или функции ошибка не возникает.

Примеры

свернуть все

Использовать mustBeFinite для проверки отсутствия элементов массива NaN или Inf.

d = 0:9;
A = 1./d;
mustBeFinite(A)
Error using mustBeFinite (line 13)
Value must be finite.

Разделение по d в результате один элемент стал Inf, что приводит к ошибке.

Этот класс ограничивает значение Prop1 для конечных значений.

classdef MyClass
   properties
      Prop1 {mustBeFinite}
   end
end

Создайте объект и назначьте ему значение.

d = 0:9;
obj = MyClass;
obj.Prop1 = 1./d;
Error setting property 'Prop1' of class 'MyClass':
Value must be finite.

При назначении значения свойству вызов MATLAB mustBeFinite со значением, назначенным свойству. mustBeFinite выдает ошибку, поскольку результат деления на 0 является Inf.

Эта функция объявляет входной аргумент, который должен быть вектором двойников, не содержащих Inf или NaN элементы.

function s = mbFinite(x)
    arguments
        x (1,:) double {mustBeFinite}
    end
    n = length(x);
    m = sum(x)/n;
    s = sqrt(sum((x-m).^2/n));
end

Вызов функции с вводом, не соответствующим требованию mustBeFinite приводит к ошибке.

values = [12.7, 45.4, 98.9, Inf, 53.1];
s = mbFinite(values);
Error using mbFinite
Invalid input argument at position 1. Value must be finite.

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

свернуть все

Значение для проверки, указанное как скаляр или массив одного из следующих значений:

  • logical, числовые классы или char

  • Классы MATLAB, реализующие isfinite

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного номера: Да

Совет

  • mustBeFinite предназначен для использования при проверке аргументов свойств и функций.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2017a