Main Content

mustBeNonnegative

Validate that value is nonnegative

Description

example

mustBeNonnegative(value) throws an error if value is negative. This function does not return a value.

mustBeNonnegative calls these functions to determine if the input is not negative:

Class support: All numeric classes, logical, and MATLAB® classes that overload the functions called by mustBeNonnegative.

Examples

collapse all

Use mustBeNonnegative to validate that the input contains only nonnegative values.

The randn function creates normally distributed random numbers.

A = randn(1,5);

Validate that the random numbers are nonnegative.

mustBeNonnegative(A)
Error using mustBeNonnegative (line 14)
Value must be nonnegative.

This class restricts the value of Prop1 to nonnegative values.

classdef MyClass
   properties
      Prop1 {mustBeNonnegative}
   end
end

Create an object and assign a value to its property.

obj = MyClass;
obj.Prop1 = -10;
Error using mustBeNonnegative (line 14)
Value must be nonnegative.

When you assign a value to the property, MATLAB calls mustBeNonnegative with the value being assigned to the property. mustBeNonnegative issues an error because the value -10 is negative.

This function declares two input arguments. Input lower must be not be positive and input upper must be positive.

function r = mbNonnegative(lower,upper)
    arguments
        lower {mustBeNonpositive}
        upper {mustBeNonnegative}
    end
    x = lower*pi:upper*pi;
    r = sin(x);
end

Calling the function with a value for upper that does not meet the requirements of mustBeNonnegative results an error.

r = mbNonnegative(-12,-4);
Error using mbNonnegative
Invalid input argument at position 2. Value must be nonnegative.

Input Arguments

collapse all

Value to validate, specified as a scalar or an array of one of the following:

Example: value = 1 does not generate an error.

Tips

  • mustBeNonnegative is designed to be used for property and function argument validation.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2017a