Main Content

mustBeNonnegative

Validate that value is nonnegative

Description

mustBeNonnegative(value) throws an error if value is negative. A value is negative if it is less than zero. This function does not return a value.

mustBeNonnegative calls the ge function to determine if the input is not negative. (since R2026a)

Class support: All numeric classes, logical, and MATLAB® classes that implement ge.

example

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)
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 setting property 'Prop1' of class 'MyClass'. 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 (line 4)
 r = mbNonnegative(-12,-4);
                       ^^
Invalid 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 these types:

  • logical or numeric class

  • MATLAB classes that implement ge

Example: value = 1 does not generate an error.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration | table | timetable
Complex Number Support: Yes

Tips

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

Extended Capabilities

expand all

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

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced in R2017a

expand all