6.4.1 Comma-Separated Lists Generated from Cell Arrays

Last-modified: 2025-03-21 (金) 21:17:34

6.4.1 セル配列から生成されたコンマ区切りリスト

上で述べたように (セル配列のインデックス作成を{参照)、セル配列の要素は、 and演算子を使用してコンマ区切りのリストに抽出できます }。このリストを [andで囲むことで]、配列に連結できます。例:

a = {1, [2, 3], 4, 5, 6};
b = [a{1:4}]
    ⇒ b =
        1   2   3   4   5

同様に、 で選択したセル要素を含む新しいセル配列を作成することもできます{}。リストを '{' そして '}' 次の例に示すように、新しいセル配列が作成されます。

a = {1, rand(2, 2), "three"};
b = { a{ [1, 3] } }
    ⇒ b =
        {
          [1,1] =  1
          [1,2] = three
        }

さらに、セル要素 ( によってアクセス{}) は関数に直接渡すことができます。セル配列の要素のリストは、要素を個別の引数として呼び出した場合と同様に、特定の関数に引数リストとして渡されます。 printf次の例の への 2 つの呼び出しは同じですが、後者の方が単純で、任意のサイズのセル配列を処理できます。

c = {"GNU", "Octave", "is", "Free", "Software"};
printf ("%s ", c{1}, c{2}, c{3}, c{4}, c{5});
    -| GNU Octave is Free Software
printf ("%s ", c{:});
    -| GNU Octave is Free Software

代入の左側で使用する場合、生成されたコンマ区切りのリストを{}代入することができます。例は次のとおりです。

in{1} = [10, 20, 30];
in{2} = inf;
in{3} = "last";
in{4} = "first";
out = cell (4, 1);
[out{1:3}] = in{1 : 3};
[out{4:6}] = in{[1, 2, 4]})
    ⇒ out =
       {
          [1,1] =
             10   20   30
          [2,1] = Inf
          [3,1] = last
          [4,1] =
             10   20   30
          [5,1] = Inf
          [6,1] = first
       }