2011-03-09 83 views
9

我有一个2D单元阵列。我要做到以下几点:简单的2D单元阵列追加

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

然而,行(X)没有被定义,直到出现这种情况,因此不能正常工作!当行(x)可能没有被定义时,我如何简单地将another_row(y)追加到行(x)上?

对不起,这很容易在其他语言做,但我不知道如何在MATLAB!

谢谢。

+0

这并不完全清楚你想要做什么。你能否提供一个具体的例子,说明你的阵列中可能存在什么,以及之后你想要的内容?或者使用其他语言的代码很容易? – 2011-03-09 18:21:08

回答

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以获取更多信息的文档。

还应该注意,像这样增长的数组并不是非常有效。假设你知道它的最终尺寸,这是一个更好的主意。如果您不知道最终尺寸,则allocating array elements in chunks可能会比一次分配一行更有效。