我有一个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)
有关创建和连接矩阵的更多信息,请参阅文档.
还应该注意,像这样增长的阵列效率不高.假设您知道最终的大小,预分配数组是一个更好的主意.如果您不知道最终大小,则以块的形式分配数组元素可能比一次分配一行更有效.