Main Content

mustBePositive

値が正であることを検証

説明

mustBePositive(value) は、value が正でない場合にエラーをスローします。値が正となるのは、値が実数の数値で、0 より大きい場合です。この関数は値を返しません。

mustBePositive は以下の関数を呼び出して、入力が正でないかどうかを判別します。

クラス サポート: すべての数値クラス、logical、および mustBePositive によって呼び出される関数をオーバーロードする MATLAB® クラス。

この関数は空の値である入力引数を無視します。このため、プロパティ値または関数の引数値が空の場合、エラーはスローされません。

すべて折りたたむ

mustBePositive を使用して、入力に正の値のみが含まれていることを検証します。

関数 rand は一様分布する乱数を作成します。

A = rand(1,5) -0.5;

配列の要素が正であることを検証します。

mustBePositive(A)
Error using mustBePositive
Value must be positive.

rand により返された配列から 0.5 を減算した結果には負の数値が含まれる場合があります。値が負の場合、mustBePositive はエラーを発行します。

このクラスは、Prop1 の値を正の値に制限します。

classdef MyClass
   properties
      Prop1 {mustBePositive}
   end
end

オブジェクトを作成して、プロパティに値を割り当てます。

obj = MyClass;
obj.Prop1 = 0;
Error setting property 'Prop1' of class 'MyClass':
Value must be positive.

プロパティに値を割り当てると、MATLAB はプロパティに割り当てた値を使用して mustBePositive を呼び出します。値 0 は正ではないため、mustBePositive はエラーを発行します。

この関数は、2 つの入力引数を宣言します。入力 A は数値ベクトルでなければなりません。入力 ix は正の整数でなければなりません。

function r = mbPositive(A,ix)
    arguments
        A (1,:) {mustBeNumeric}
        ix {mustBePositive, mustBeInteger}
    end
    r = A(ix);
end

mustBePositive の要件を満たさない ix の値を指定して関数を呼び出すと、エラーになります。

A = 1:10;
ix = 0;
r = mbPositive(A,ix);
Error using mbPositive
 r = mbPositive(A,ix)
                  ↑
Invalid input argument at position 2. Value must be positive.

入力引数

すべて折りたたむ

検証する値。スカラーまたは次のいずれかの配列として指定します。

ヒント

  • mustBePositive は、プロパティと関数の引数の検証で使用されるように設計されています。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2017a で導入