mustBeNonNan

Подтвердите то значение, не NaN

Синтаксис

Описание

пример

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

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

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

Примеры

свернуть все

Используйте mustBeNonNan чтобы не подтвердить это, никакими элементами массива не является NaN.

A = 0./[-2 -1 0 1 2];
mustBeNonNan(A)
Error using mustBeNonNan (line 13)
Value must not be NaN.

Деление 0 0 равно NaN таким образом, значение массивов содержит один элемент, который является NaN, который вызывает ошибку.

Этот класс ограничивает значение Prop1 к nonNaN значениям.

classdef MyClass
   properties
      Prop1 {mustBeNonNan}
   end
end

Создайте объект и присвойте значение Prop1.

obj = MyClass;
obj.Prop1 = 0./[-2 -1 0 1 2];
Error setting property 'Prop1' of class 'MyClass':
Value must not be NaN.

Когда вы присваиваете значение свойству, MATLAB вызывает mustBeNonNan со значением, присваиваемым свойству. mustBeNonNan выдает ошибку потому что деление 0 0 isnan.

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

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

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

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

Входные параметры

свернуть все

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

  • Весь MATLAB числовые классы и logical.

  • MATLAB пользовательские классы та реализация isnan

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

Советы

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

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

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

Введенный в R2017a