八度附加在2D单元阵列中

Raf*_*mal 2 matlab octave cell-array

我正在尝试将元素添加到2D单元阵列行的末尾。我的代码是:

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

这给了我错误: 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]
Run Code Online (Sandbox Code Playgroud)

Eit*_*n T 5

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

如果要在矩阵的行末尾附加元素(在您的情况下为单元格数组),则仍必须确保分配后所有行的大小均相同,否则将引发以下错误:尺寸不匹配。

代替b(1) = {b(1, :), 2},以下方法应该起作用:

b(1, end + 1) = 2
Run Code Online (Sandbox Code Playgroud)

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

b = [b, {2; 3; 4; 5; 6}];
Run Code Online (Sandbox Code Playgroud)

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