Main Content

mustBeNonzero

値が非ゼロであることを検証

説明

mustBeNonzero(value) は、value がゼロである場合にエラーをスローします。この関数は値を返しません。

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

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

すべて折りたたむ

mustBeNonzero を使用して、入力にゼロ値が含まれていないことを検証します。

A は、次の計算の結果得られる数値の配列です。

A = sin([-1,0,1]);
mustBeNonzero(A)
Value must not be zero.

このクラスは Prop1 の値を非ゼロに制限します。

classdef MyClass
   properties
      Prop1 {mustBeNonzero}
   end
end

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

obj = MyClass;
obj.Prop1 = sin([-1,0,1]);
Error setting property 'Prop1' of class 'MyClass':
Value must not be zero.

プロパティに値を割り当てると、MATLAB はプロパティに割り当てた値を使用して mustBeNonzero を呼び出します。A の 1 つの値が 0 であるため、mustBeNonzero はエラーを発行します。

この関数は、2 つの入力引数を宣言します。入力 A は数値ベクトルでなければならず、入力 offset はゼロと等しくないスカラーでなければなりません。

function r = mbNonzero(A,offset)
    arguments
        A {mustBeNumeric}
        offset (1,1) {mustBeNonzero}
    end
    r = A + offset;
end

offset にゼロと等しい値を指定して関数を呼び出すと、mustBeNonzero の要件が満たされず、エラーになります。

A = [12.7, 45.4, 98.9, 77.1, 53.1];
r = mbNonzero(A,0);
Error using mbNonzero
 r = mbNonzero(A,0);
                 ↑
Invalid input argument at position 2. Value must not be zero.

入力引数

すべて折りたたむ

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

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
複素数のサポート: あり

ヒント

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

拡張機能

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

バージョン履歴

R2017a で導入