2011-03-09 103 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可能會比一次分配一行更有效。