附加简单的2D单元阵列

ale*_*ale 9 matlab

我有一个2D单元阵列.我想做以下事情:

y = some_number;
row(x) = [row(x)  another_row(y)];
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

gno*_*ice 15

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

row = [];  %# Empty array
row = {};  %# Empty cell array
Run Code Online (Sandbox Code Playgroud)

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

row = [row; another_row(y)];    %# Append a row to the array
row = [row; {another_row(y)}];  %# Append a cell to the cell array
Run Code Online (Sandbox Code Playgroud)

有关创建和连接矩阵的更多信息,请参阅文档.

还应该注意,像这样增长的阵列效率不高.假设您知道最终的大小,预分配数组是一个更好的主意.如果您不知道最终大小,则以块的形式分配数组元素可能比一次分配一行更有效.