2

2D セル配列行の末尾に要素を追加しようとしています。私のコードは次のとおりです。

b = cell(5, 0)
b(1) = {b(1, :), 2}   % Trying to append at the end of the first row

これは私にエラーを与えます:error: A(I) = X: X must have the same size as I

次のような他のさまざまな形式も試しました。

b = cell(5, 0)
b(1, end+1) = 2   % Ok, inserts 2 at [1,1]
b(2, end+1) = 3   % No, inserts 3 at [2,2] instead of [2, 1]
4

2 に答える 2

5

セル配列のインデックス付けと混同しているようです。

行列 (この場合は cell 配列) の行の末尾に要素を追加する場合でも、割り当て後にすべての行が同じサイズであることを確認する必要があります。そうしないと、エラーが発生します寸法の不一致。

の代わりにb(1) = {b(1, :), 2}、以下が機能するはずです。

b(1, end + 1) = 2

または、セルの列配列全体を に追加する場合はb、水平方向の連結を使用します。次に例を示します。

b = [b, {2; 3; 4; 5; 6}];

これにより、 の各行の末尾に 1 つのセルが追加されますb

于 2013-05-12T08:48:35.940 に答える
2

[2, 2]要素が atおよび notに挿入される理由は[1, 1]、2 番目の要素を挿入しようとするまでに、 で示される値endが から に増加している0ため1です。

以下は、必要なことを行う必要があります。

>> b = cell(5, 0)

b = 

Empty cell array: 5-by-0

>> b(1,1) = {2}

b = 

    [2]
    []
    []
    []
    []

>> b(2,1) = {3}

b = 

    [2]
    [3]
    []
    []
    []

>> 
于 2013-05-12T08:51:34.323 に答える