0

これは、Octave ドキュメントのセクション 6.3.1 セル配列から生成されたコンマ区切りリスト ( docOctave プロンプトでコマンドを参照した) の例ですが、よくわかりません。

in{1} = [10, 20, 30, 40, 50, 60, 70, 80, 90];
in{2} = inf;
in{3} = "last";
in{4} = "first";
out = cell(4, 1);
[out{1:3}] = find(in{1 : 3}); % line which I do not understand

したがって、このセクションの最後では、次のinようになります。

in =
{
  [1,1] =
     10 20 30 40 50 60 70 80 90
  [1,2] = Inf
  [1,3] = last
  [1,4] = first
}

そして次のようにout見えます:

out =
{
  [1,1] =
    1 1 1 1 1 1 1 1 1
  [2,1] =
    1 2 3 4 5 6 7 8 9
  [3,1] =
    10 20 30 40 50 60 70 80 90
  [4,1] = [](0x0)
}

ここで、findは 3 つの出力パラメータで呼び出されます (出力パラメータと呼ぶのが間違っていたらすみません。私は Octave にかなり慣れていません) from[out{1:3}]は、セル配列 の最初の 3 つの空のセルを表しoutます。

find(in{1 : 3})次のように、3 つの出力パラメーターを使用して実行すると、次のようになります。

[i,j,k] = find(in{1 : 3})

私は得る:

i = 1  1  1  1  1  1  1  1  1
j = 1  2  3  4  5  6  7  8  9
k = 10 20 30 40 50 60 70 80 90

outそのように見える理由を説明していますが、実行すると次のようin{1:3}になります。

ans = 10 20 30 40 50 60 70 80 90
ans = Inf
ans = last

incell 配列の 1 番目から 3 番目の要素です。

find(in{1 : 3})私の質問は:のコンマ区切りリストの 2 番目と 3 番目のエントリが削除されるのはなぜin{1 : 3}ですか?

ありがとうございました。

4

1 に答える 1