mustBeNonNan
値が NaN でないことを検証
説明
例
値が NaN でないことを検証
mustBeNonNan
を使用して、配列のすべての要素が NaN
でないことを検証します。
A = 0./[-2 -1 0 1 2]; mustBeNonNan(A)
Value must not be NaN.
0
を 0
で除算すると NaN
となり、配列値には NaN
である要素が 1 つ含まれるため、エラーが発生します。
プロパティ値の制限
このクラスは Prop1
の値を NaN でない値に制限します。
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
を呼び出します。0
を 0
で除算すると NaN
になるため、mustBeNonNan
はエラーを発行します。
関数の引数値の制限
この関数は、入力引数が NaN
の要素を含まない double のベクトルでなければならないことを宣言します。
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 s = mbNonNan(values); ↑ Invalid input argument at position 1. Value must not be NaN.
入力引数
ヒント
mustBeNonNan
は、プロパティと関数の引数の検証で使用されるように設計されています。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2017a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)