最派生クラスのテスト
以下の入力を必要とする関数を定義する場合、
MATLAB® 組み込み型
MATLAB 組み込み型のサブクラス以外
以下の手法で入力引数から組み込み型のサブクラスを排除します。
以下のコードは、入力引数 inputArg
をテストします。
if strcmp(class(inputArg),'single') % Call function else inputArg = single(inputArg); end
型のカテゴリのテスト
double
型または single
型の 2 つの数値入力を必要とする MEX 関数 myMexFcn
を作成するとします。
outArray = myMexFcn(a,b)
単語 double
および single
を含む cell 配列 floatTypes
を定義します。
floatTypes = {'double','single'};
% Test for proper types if any(strcmp(class(a),floatTypes)) && ... any(strcmp(class(b),floatTypes)) outArray = myMexFcn(a,b); else % Try to convert inputs to avoid error ... end
組み込み型の他のテスト
isobject
を使用して、組み込み型と組み込み型のサブクラスとを識別できます。関数 isobject
は、組み込み型のインスタンスに対して false
を返します。以下に例を示します。
% Create a int16 array
a = int16([2,5,7,11]);
isobject(a)
ans = 0
配列が組み込み整数型のいずれかであるか判断します。
if isa(a,'integer') && ~isobject(a) % a is a built-in integer type ... end