ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.typeof

パッケージ: coder

MATLAB 値を正準型に変換

構文

t=coder.typeof(v)
t=coder.typeof(v, sz, variable_dims)
t=coder.typeof(t)

説明

t=coder.typeof(v) では、v を含む最小の非定数型を表す coder.Type オブジェクトが作成されます。v は MATLAB® の数値、論理値、文字、列挙、固定小数点配列またはこれらの型で構成される構造体でなければなりません。coder.typeof は、入力パラメーターの型を指定する場合にのみ使用します。たとえば、関数 fiaccel-args オプションと共に使用します。MEX 関数の生成元となる MATLAB コード内では、この関数を使用しないでください。

t=coder.typeof(v, sz, variable_dims) では、sz で指定された上限のサイズと、可変の次元 variable_dims をもつ t=coder.typeof(v) の変更されたコピーが返されます。sz で次元に inf を指定する場合は、次元のサイズは無限で、次元は可変サイズです。sz が [] の場合は、v の上限のサイズは変化しません。variable_dims 入力パラメーターを指定しないと、この型の制限付き次元は固定になります。variable_dims がスカラーの場合は、制限付き次元か、1 または 0 (固定) である次元に適用されます。

t=coder.typeof(t) では、tcoder.Type オブジェクトであり、t 自体を返します。

入力引数

sz

型オブジェクトの各次元を指定するサイズ ベクトル

t

coder.Type オブジェクト

v

この型で表される値のセットを記述する MATLAB 式。

v は MATLAB の数値、論理値、文字、列挙、固定小数点配列またはこれらの型で構成される構造体でなければなりません。

variable_dims

各次元のサイズが可変 (true) か、固定 (false) かを指定する論理ベクトル。

既定値: false(size(sz)) | sz==Inf

出力引数

t

coder.Type オブジェクト

double で固定サイズのシンプルな 5x6 行列に対する型を作成します。

coder.typeof(ones(5, 6))         
 % returns 5x6 double
coder.typeof(0, [5 6])           
 % also returns 5x6 double

double で可変サイズ行列の型を作成します。

coder.typeof(ones(3,3), [], 1)    
% returns :3 x :3 double
% ':' indicates variable-size dimensions

可変サイズ フィールドをもつ構造体の型を作成します。

x.a = coder.typeof(0,[3 5],1);
x.b = magic(3);
coder.typeof(x)
% Returns 
% coder.StructType
%    1x1 struct
%      a:  :3x:5 double
%      b:  3x3  double
% ':' indicates variable-size dimensions

固定サイズの次元と可変サイズの次元をもつ行列の型を作成します。

coder.typeof(0, [2,3,4], [1 0 1]);
% Returns :2x3x:4 double 
% ':' indicates variable-size dimensions
coder.typeof(10, [1 5], 1) 
% returns double 1 x  :5
% ':' indicates variable-size dimensions

最初の次元は制限なし、2 番目の次元は固定サイズ double の行列の型を作成します。

coder.typeof(10,[inf,3]) 
% returns double:inf x 3
% ':' indicates variable-size dimensions

最初の次元は制限なし、2 番目の次元は上限サイズが 3 の可変サイズ double の行列の型を作成します。

coder.typeof(10, [inf,3],[0 1]) 
% returns double :inf x :3
% ':' indicates variable-size dimensions

固定サイズ行列を可変サイズ行列に変換します。

 coder.typeof(ones(5,5), [], 1) 
% returns double :5x:5
% ':' indicates variable-size dimensions

入れ子にされた構造体 (別の構造体のフィールドとなる構造体) を作成します。

S = struct('a',double(0),'b',single(0))
SuperS.x = coder.typeof(S)
SuperS.y = single(0)
coder.typeof(SuperS)  
% Returns 
% coder.StructType
% SuperS:  1x1 struct
%   with fields 
%      x:  1x1 struct
%         with fields
%             a: 1x1 double
%             b: 1x1 single
%      y:  1x1  single

構造体の可変サイズ配列をフィールドとして含む構造体を作成します。

S = struct('a',double(0),'b',single(0))
SuperS.x = coder.typeof(S,[1 inf],[0 1])
SuperS.y = single(0)
coder.typeof(SuperS)  
% Returns 
% coder.StructType
% SuperS:  1x1 struct
%   with fields 
%      x:  1x:inf struct
%         with fields
%             a: 1x1 double
%             b: 1x1 single
%      y:  1x1  single
% ':' indicates variable-size dimensions

ヒント

  • type 関数を使用して入力変数の型を既に指定している場合は、サイズも指定する場合を除き coder.typeof を使用しないでください。たとえば、coder.typeof(single(0)) ではなく、構文 single(0) を使用します。

この情報は役に立ちましたか?