2013-08-07 173 views
3

我知道什麼是cell array。我剛來到以下行:MATLAB中的單元陣列

cell_array = cell([], 1); 

這是什麼意思?我們如何讀取上面的行?

謝謝。

+2

它與'cell_array = cell(0,1)'相同,即製作一個0x1空單元矩陣,但我不能說我知道這樣做的任何理由。例如,如果你只是初始化一個循環 – Dan

+1

@Dan,你可以例如創建一個像這個'cell_array = {}'的0x0單元數組。當你說'0x1'。這是否意味着'0'行和'1'列?我們怎麼能有'0'行?謝謝 – Simplicity

+1

是的,這是完全正確的。我不知道你爲什麼需要這個。 0x0,即空是有用的。 0x1對我來說幾乎是空的:/ – Dan

回答

0

cell用於分配單元陣列,在這種情況下:cell_array

因此分配一個大小爲0x1的空單元格。 但是,這不是細胞的有用語法。對於其他(自定義)對象也可以是生成這樣的空數組

myArray = myObject.empty(0, 1); 
+0

您也可以使用'empty'作爲單元格數組:'cell_array = cell.empty(0,1)'。 –

+0

但爲什麼'(0,1)'而不是'(0,0)'? – Dan

1

因此,這使得一個爲0x1空單元陣列是有用的。如字面上的0行和1列。你可以這樣做一個0x0單元陣列:

cell_array = {} 

這對我有意義。我這樣做有時候就好像你不能在循環之前預先分配,有時候在循環中連接或者去循環cell_array(end) = ...是有用的。

我真的不知道你爲什麼更喜歡0x1,但this question顯示了它與0x0的不同。所以我的意思是,如果出於某種奇怪的原因,你在這個空陣列上運行一個for循環,你知道它至少會運行一次:/但是這真的是爲了某個原因刮掉桶。我認爲只要堅持= {}

編輯:

由於@radarhead指出,這是如果你打算在一個循環中將新行預設列數的一種方式。