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++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a