プロパティ検証へのメタデータ インターフェイス
プロパティ検証の詳細については、プロパティ値の検証を参照してください。
プロパティにどの検証が適用されるかは、検証メタデータにアクセスすることで判別できます。matlab.metadata.Validation クラスのインスタンスは、プロパティ検証に関する次の情報を提供します。
matlab.metadata.Classオブジェクトとして指定されるプロパティのクラス要件matlab.metadata.FixedDimensionおよびmatlab.metadata.UnrestrictedDimensionオブジェクトの配列として指定されるプロパティ値のサイズ要件関数ハンドルの cell 配列として指定されるプロパティ値に適用される検証関数を参照する関数ハンドル
たとえば、ValidationExample クラスは、1 行 x 任意の列数の double の配列で、10 より大きな実数でなければならないプロパティを定義します。
classdef ValidationExample properties Prop (1,:) double {mustBeReal,mustBeGreaterThan(Prop,10)} = 200; end end
プロパティの matlab.metadata.Property オブジェクトから matlab.metadata.Validation オブジェクトにアクセスします。matlab.metadata.Validation オブジェクトのプロパティから検証情報を取得します。この情報を cell 配列に収集し、表示します。
Sizeプロパティからサイズ情報を取得するClassプロパティからクラス名を取得するValidatorFunctionsプロパティから検証関数の関数ハンドルの cell 配列を取得する
mc = ?ValidationExample; mp = findobj(mc.PropertyList,'Name','Prop'); sz = mp.Validation.Size; len = length(sz); dim = cell(1:len); for k = 1:len if isa(sz(k),'matlab.metadata.FixedDimension') dim{k} = sz(k).Length; else dim{k} = ':'; end end dim{end+1} = mp.Validation.Class.Name; dim{end+1} = mp.Validation.ValidatorFunctions; dim
dim =
1×4 cell array
{[1]} {':'} {'double'} {1×2 cell}参考
matlab.metadata.Property | matlab.metadata.Validation