mustBeFinite

Подтвердите, что значение конечно, или выдайте ошибку

Синтаксис

Описание

пример

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

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

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

Примеры

свернуть все

Используйте 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 или числовой класс

  • Классы MATLAB та реализация isfinite

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017a