附加简单的2D单元阵列

时间:2011-03-09 18:13:52

标签: matlab

我有一个2D细胞阵列。我想做以下事情:

y = some_number;
row(x) = [row(x)  another_row(y)];

但是,直到发生这种情况才会定义row(x),因此它不起作用!当没有定义行(x)时,如何简单地将another_row(y)附加到行(x)上?

对不起,这在其他语言中很容易,但我不确定在MATLAB中怎么做!

谢谢。

1 个答案:

答案 0 :(得分:15)

您可以先将row初始化为空数组(或单元格数组),如下所示:

row = [];  %# Empty array
row = {};  %# Empty cell array

然后你可以在数组中添加一个新行(或者向单元格数组添加一个新单元格),如下所示:

row = [row; another_row(y)];    %# Append a row to the array
row = [row; {another_row(y)}];  %# Append a cell to the cell array

有关creating and concatenating matrices的更多信息,请参阅文档。

还应该注意,像这样增长的阵列效率不高。 Preallocating an array,假设您知道它的最终尺寸,是一个更好的主意。如果您不知道最终大小,allocating array elements in chunks可能比一次分配一行更有效。