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 isinf.

Эта функция объявляет входной параметр, который должен быть вектором из, удваивается, которые не содержат 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