Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

coder.resize

coder.Type オブジェクトのサイズ変更

説明

t_out = coder.resize(t,sz) では、t のサイズが sz に変更されます。

t_out = coder.resize(t,sz,variable_dims) では、(上限の) サイズ sz と可変の次元 variable_dims をもつ coder.Type t の変更されたコピーが返されます。variable_dims または sz がスカラーの場合、関数によって t のすべての次元にスカラーが適用されます。既定では、sz0 または 1 で固定の場合は、variable_dims は次元に適用されません。'uniform' オプションを使用してこの特殊な状況をオーバーライドします。関数 coder.resize はサイズが inf の次元に対する variable_dims を無視します。これらの次元は可変サイズです。t は型の cell 配列にでき、その場合は coder.resize によって cell 配列のすべての要素のサイズが変更されます。

t_out = coder.resize(t,[],variable_dims) では、サイズはそのままで t が可変の次元 variable_dims をもつようになります。

t_out = coder.resize(t,sz,variable_dims,Name,Value) では、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、t のサイズが変更されます。

t_out = coder.resize(t,'sizelimits',limits) では、limits ベクトルのしきい値に基づいて t の個々の次元のサイズが変更されます。limits ベクトルは、2 つの正の整数要素を含む行ベクトルです。t の各次元のサイズは、limits ベクトルのしきい値に従って個別に変更されます。

  • 次元のサイズ Slimits で定義された両方のしきい値より小さい場合、その次元はそのまま維持されます。

  • 次元のサイズ Slimits で定義された最初のしきい値以上かつ 2 番目のしきい値未満の場合、その次元は上限が S の可変サイズになります。

  • ただし、次元のサイズ Slimits で定義された 2 番目のしきい値以上でもある場合、その次元は制限なしの可変サイズになります。

limits の値がスカラーの場合、しきい値は、両方のしきい値を表すためにスカラー拡張されます。たとえば、4 として定義した limits は、[4 4] として解釈されます。

'sizelimits' オプションを使用すると、生成コード内の大規模配列にメモリを動的に割り当てることができます。

すべて折りたたむ

固定サイズの配列を制限なしの可変サイズ配列に変更します。

t = coder.typeof(ones(3,3))     
t = 

coder.PrimitiveType
   3×3 double
coder.resize(t,inf)           
ans = 

coder.PrimitiveType
   :inf×:inf double
% ':' indicates variable-size dimensions

固定サイズの配列を制限付きの可変サイズ配列に変更します。

t = coder.typeof(ones(3,3))
t = 

coder.PrimitiveType
   3×3 double
coder.resize(t,[4 5],1)
ans = 

coder.PrimitiveType
   :4×:5 double
% ':' indicates variable-size dimensions

構造体フィールドのサイズを変更します。

ts = coder.typeof(struct('a',ones(3, 3))) 
ts = 

coder.StructType
   1×1 struct
      a: 3×3 double
coder.resize(ts,[5, 5],'recursive',1)   
ans = 

coder.StructType
   5×5 struct
      a: 5×5 double

cell 配列のサイズを変更します。

tc = coder.typeof({1 2 3}) 
tc = 

coder.CellType
   1×3 homogeneous cell 
      base: 1×1 double
coder.resize(tc,[5, 5],'recursive',1)   
ans = 

coder.CellType
   5×5 homogeneous cell 
      base: 1×1 double

制限付きおよび制限なしのしきい値に基づいて固定サイズ配列を可変サイズに変更します。

t = coder.typeof(ones(100,200))
t = 

coder.PrimitiveType
   100×200 double
coder.resize(t,'sizelimits',[99 199])   
ans = 

coder.PrimitiveType
   :100×:inf double
% ':' indicates variable-size dimensions

入力引数

すべて折りたたむ

可変サイズのしきい値の行ベクトル。limits の値がスカラーの場合、しきい値はスカラー拡張されます。t の次元のサイズ szlimits で定義された最初のしきい値以上かつ 2 番目のしきい値未満の場合、その次元は上限が sz の可変サイズになります。t の次元のサイズ sz が 2 番目のしきい値以上でもある場合、その次元は制限なしの可変サイズになります。

ただし、サイズ sz が両方のしきい値より小さい場合、その次元はそのまま維持されます。

例: coder.resize(t,'sizelimits',[99 199]);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

coder.Type オブジェクト t_out の新しいサイズ

例: coder.resize(t,[3,4]);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

tcoder.CellType オブジェクトの場合、coder.CellType オブジェクトは同種でなければなりません。

例: coder.resize(t,inf);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi
複素数のサポート: あり

t_out の各次元が固定サイズか可変サイズかを指定します。

例: coder.resize(t,[4 5],1);

データ型: logical

名前と値のペアの引数

オプションのコンマ区切りされた Name,Value の引数ペアを指定します。ここで、Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: coder.resize(t,[5, 5],'recursive', 1);

recursivetrue に設定すると、t とこれに含まれるすべての型のサイズが変更されます。

データ型: logical

uniformtrue に設定すると、t のサイズが変更され、サイズが 1 の次元に対してヒューリスティックな方法が適用されます。

ヒューリスティックな方法は次のように機能します。

  • variable_dims がスカラー true の場合、すべての次元のサイズが sz で指定されている上限の可変サイズに変更されます。これには、サイズが 1 の次元が含まれます。次に例を示します。

    t = coder.typeof(1, [1 5]);
    tResize = coder.resize(t,[1 7],true,'uniform',true); 

    これにより、オブジェクト tResize が次のように生成されます。

    tResize = 
    
    coder.PrimitiveType
       :1×:7 double
    
        Edit Type Object
  • 'sizelimits' オプションを指定して uniformtrue に設定した場合、サイズが 1 の次元のサイズは、ヒューリスティックな方法 'sizelimits' に従って可変サイズにも変更されます。次に例を示します。

    t = coder.typeof(1, [1 5]);
    tResize = coder.resize(t,[],'sizelimits',[0 6],'uniform',true); 

    これらのコマンドにより、オブジェクト tResize が次のように生成されます。

    tResize = 
    
    coder.PrimitiveType
       :1×:5 double
    
        Edit Type Object
  • variable_dims が非スカラーの logical として指定されている場合、uniform の設定は無効です。ただし、variable_dims がスカラーで uniformfalse に設定されている場合、サイズが 1 より大きい次元のサイズのみが変更されます。

データ型: logical

limits ベクトルと共に sizelimits オプションを使用すると、t の個々の次元のサイズが変更されます。

t = coder.typeof(1, [1 5]);
tResize = coder.resize(t,[],'sizelimits',[0 6],'uniform',true); 

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

サイズ変更された coder.Type オブジェクト

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi
複素数のサポート: あり

制限

  • スパース行列の場合、coder.resize は可変サイズの次元の上限を下げます。

R2011a で導入