我有一个2D细胞阵列。我想做以下事情:
y = some_number;
row(x) = [row(x) another_row(y)];
但是,直到发生这种情况才会定义row(x),因此它不起作用!当没有定义行(x)时,如何简单地将another_row(y)附加到行(x)上?
对不起,这在其他语言中很容易,但我不确定在MATLAB中怎么做!
谢谢。
答案 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可能比一次分配一行更有效。