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

您似乎对元胞数组索引感到困惑。

如果要在矩阵(在您的情况下为元胞数组)中的行末尾附加元素,则仍必须确保分配后所有行的大小相同,否则将触发有关尺寸不匹配。

而不是b(1) = {b(1, :), 2},以下应该工作:

b(1, end + 1) = 2

或者,如果要将整个单元格列数组附加到b,请使用水平连接,例如:

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

这应该在每行的末尾附加一个单元格b

于 2013-05-12T08:48:35.940 回答
2

元素被插入[2, 2]而不是插入的原因[1, 1]是,当您尝试插入第二个元素时,由 表示的值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 回答