Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

colon, :

ベクトルの作成、配列の添字、および for ループの反復

構文

x = j:k
x = j:i:k
A(:,n)
A(m,:)
A(:)
A(j:k)

説明

コロンは、MATLAB® で最も便利な演算子の 1 つです。ベクトルと配列の添字を作成し、for ループの反復を指定できます。

x = j:k は、要素 [j,j+1,j+2,...,j+m] をもつ、間隔が 1 のベクトル x を作成します。ここで、m = fix(k-j) です。jk が両方とも整数の場合は、これは単純に [j,j+1,...,k] になります。

x = j:i:k は、i を要素間のインクリメントとして使用して、一定間隔で区切られたベクトル x を作成します。ベクトル要素は [j,j+i,j+2*i,...,j+m*i] とほぼ等しくなります。ここで、m = fix((k-j)/i) です。しかし、i が整数ではない場合、colon がベクトルに端点 k を含むかどうかは浮動小数点演算により決定されます。これは、kj+m*i "厳密に" 等しくない場合があるためです。非スカラー配列を指定すると、MATLAB は j:i:kj(1):i(1):k(1) と解釈します。

x = colon(j,k)x = colon(j,i,k) は、コマンド j:kj:i:k を実行する代替方法ですが、まれにしか使用されません。これらの構文では、クラスに演算子をオーバーロードできます。

A(:,n)A(m,:)A(:) および A(j:k) は、行列 A に対するコロンを含む一般的なインデックス式です。A(:,n) などのインデックス式でコロンを添字として使用すると、特定の配列次元に "すべての" 添字を含める省略表現として機能します。A(j:k) のように、インデックス付けの目的でコロンを使用してベクトルを作成することも一般的です。A(:,j:k) など、2 つのコロンの用途を組み合わせて使用するインデックス式もあります。

コロンを含む一般的なインデックス式は次のとおりです。

  • A(:,n) は、行列 An 番目の列です。

  • A(m,:) は、行列 Am 番目の行です。

  • A(:,:,p) は、3 次元配列 Ap 番目のページです。

  • A(:) は、A のすべての要素を 1 列のベクトルに形状変更します。A が既に列ベクトルである場合、効果はありません。

  • A(:,:) は、A のすべての要素を 2 次元行列に形状変更します。A が既に行列またはベクトルである場合、効果はありません。

  • A(j:k) は、ベクトル j:k を使用して A のインデックスを指定します。したがって、ベクトル [A(j), A(j+1), ..., A(k)] と等価です。

  • A(:,j:k) は、最初の次元にすべての添字を含みますが、ベクトル j:k を使用して 2 番目の次元にインデックスを指定します。これは、列 [A(:,j), A(:,j+1), ..., A(:,k)] をもつ行列を返します。

すべて折りたたむ

1 から 10 までの数値からなる、間隔が 1 のベクトルを作成します。コロン演算子は、既定のインクリメント +1 を使用します。

x = 1:10
x = 1×10

     1     2     3     4     5     6     7     8     9    10

指定した値でインクリメントまたはデクリメントするベクトルを作成します。

要素が 0.1 でインクリメントするベクトルを作成します。

x = 0:0.1:1
x = 1×11

         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000

要素が -2 でデクリメントするベクトルを作成します。

y = 10:-2:0
y = 1×6

    10     8     6     4     2     0

コロン (:) を使用して行列のインデックスを指定するいくつかの方法を調べます。

3 行 3 列の行列を作成します。1 行目のインデックスを指定します。

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

A(1,:)
ans = 1×3

     8     1     6

2 列目と 3 列目のインデックスを指定します。

A(:,2:3)
ans = 3×2

     1     6
     5     7
     9     2

行列を列ベクトルに形状変更します。

A(:)
ans = 9×1

     8
     3
     4
     1
     5
     9
     6
     7
     2

for ループのコンテキストにあるコロンは、ループ反復を指定します。

1 から 4 までの整数 n を 2 乗する for ループを記述します。

for n = 1:4
    n^2
end
ans = 1
ans = 4
ans = 9
ans = 16

入力引数

すべて折りたたむ

ベクトルの開始値。実数値スカラーとして指定します。j < k の場合、つまり出力ベクトルが空でない場合、j はベクトルの最初の要素です。

例: x = 0:5

例: x = 0:0.5:5

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

ベクトルの終了値。実数値スカラーとして指定します。k は、インクリメントした後に k に正確に一致する場合にのみベクトルの最後の値になります。たとえば、ベクトル 0:5 には最後の値として 5 が含まれますが、0:0.3:1 は最後の値として 1 が含まれません。これはインクリメントが端点に揃わないためです。

例: x = 0:5

例: x = 0:0.5:5

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

ベクトル要素間のインクリメント。実数値スカラーとして指定します。

例: x = 0:0.5:5

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

出力引数

すべて折りたたむ

一定間隔で区切られたベクトル 。行ベクトルとして返されます。j > k の場合、x = j:k は空行列です。より一般には、構文 x = j:i:k は、次の場合に空行列を返します。

  • ij、または k の入力が空である

  • i == 0

  • i > 0 かつ j > k

  • i < 0 かつ j < k

ヒント

  • for のリファレンス ページには、ループ ステートメントのコンテキストにおける : の使用方法の説明があります。

  • linspace はコロン演算子 : に類似していますが、点数を直接制御することができ、常に端点を含みます。兄弟関数の logspace は、対数的に等間隔な値を出力します。

  • cell 配列または構造体配列にインデックスを付けるためのベクトル (cellName{:} または structName(:).fieldName など) を作成する場合、MATLAB は、コンマ区切りリストを使用して複数の出力を返します。詳細については、コンマ区切りリストの使用方法を参照してください。

拡張機能

バージョン履歴

R2006a より前に導入