Main Content

colon, :

ベクトル、配列の添字の作成

説明

y = j:k は一定間隔で区切られたベクトル [j, j+1 ,..., k] を返します。j > k の場合、j:k は空です。

少なくとも 1 つのコロン オペランドは、fi オブジェクトでなければなりません。すべてのコロン オペランドは整数値でなければなりません。すべての固定小数点オペランドは、2 進数でスケーリングしなければなりません。勾配とバイアスのスケーリングはサポートされていません。いずれかのオペランドが複素数の場合、関数 colon は警告を生成し、オペランドの実数部のみを使用します。

y = colon(j,k) は、y = j:k と同じ結果になります。

y = j:i:k は一定の間隔で区切られたベクトル [j,j+i,j+2i, ...,j+m*i] を返します。ここで、m = fix((k-j)/i) です。i == 0i > 0 および j > k または i < 0 および j < k の場合、y = j:i:k は空の行列を返します。

すべて折りたたむ

fi をコロン演算子として使用する場合は、すべてのコロン オペランドを整数値にしなければなりません。

a = fi(1,0,3,0);	
b = fi(2,0,8,0);	
c = fi(12,0,8,0);	
x = a:b:c
x = 
     1     3     5     7     9    11

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 8
        FractionLength: 0

すべての入力オペランドは符号なしであるため、x は符号なしで語長は 8 になります。結果のベクトルの小数部の長さは常に 0 です。

a= fi(int8(-1));
b = uint8(255);
c = a:b;
len = c.WordLength
len = 9
signedness = c.Signedness
signedness = 
'Signed'

語長が c の場合は、int8 の範囲と uint8 の範囲の交差部分を処理するための追加ビットが必要です。オペランド a は符号付きであるため、c のデータ型は符号付きです。

開始オペランドと終了オペランドが符号なしの場合、インクリメント オペランドには負を指定できます。

x = fi(4,false):-1:1
x = 
     4     3     2     1

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 16
        FractionLength: 0

いずれかのオペランドが浮動小数点数の場合、出力の語長および符号属性は fi オペランドと同じになります。

x = fi(1):10
x = 
     1     2     3     4     5     6     7     8     9    10

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 0

x = fi(1):10fi(1:10, true, 16, 0) と同等であるため、x は符号付きで語長は 16 ビットになります。

コードで非整数オペランドを使用している場合は、オペランドが整数となるようにコロン式を書き換えます。

コロン オペランドが整数値でないため、次のコードは機能しません。

Fs = fi(100);
n = 1000;
t  = (0:1/Fs:(n/Fs - 1/Fs));

整数のオペランドを使用するようにコロン式を書き換えます。

Fs = fi(100);
n = 1000;
t  = (0:(n-1))/Fs;

いずれかのコロン オペランドの値が、コロン式で使用されているデータ型の範囲外である場合、MATLAB® はエラーを生成します。

    y = fi(1,true,8,0):256

256 は fi(1,true, 8,0) の範囲外であるため、MATLAB はエラーを生成します。この動作は組み込み整数の動作と同じです。たとえば、y = int8(1):256 は同じエラーを生成します。

入力引数

すべて折りたたむ

開始オペランド。実数スカラーの整数値 fi オブジェクトまたは組み込みの数値型として指定されます。

非スカラー配列を指定すると、MATLAB は j:i:k を、j(1):i(1):k(1) と解釈します。

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

インクリメント。実数スカラーの整数値 fi オブジェクトまたは組み込みの数値型として指定されます。開始オペランド j と終了オペランド k が両方とも符号なしの場合でも、インクリメント オペランド i は負にできます。

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

終了オペランド。実数スカラーの整数値 fi オブジェクトまたは組み込みの数値型として指定されます。

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

出力引数

すべて折りたたむ

Fixed-Point Designer™ は、次のルールを使用して y のデータ型を判別します。

  • データ型は、固定小数型の入力オペランドの範囲の和集合に対応します。

  • 開始オペランドまたは終了オペランドが符号付きの場合、結果のデータ型は符号付きになります。それ以外の場合、結果のデータ型は符号なしになります。

  • y の語長は、小数部の長さが 0 で最下位ビットの実際値が 1 といった最小値となります。

  • いずれかのオペランドが浮動小数点数の場合、y の語長および符号属性は fi オペランドから派生します。

  • いずれかのオペランドがスケーリングされた double の場合は、y もスケーリングされた double になります。

  • yfimath は、入力オペランドの fimath と同じです。

  • すべての fi オブジェクトのデータ型が double の場合、y のデータ型は double です。すべての fi オブジェクトのデータ型が single の場合、y のデータ型は single です。doublesingle の両方の入力があり、固定小数点入力がない場合、出力のデータ型は single になります。

バージョン履歴

R2013b で導入

参考

|