2015-06-22 114 views
1

比方說,我有一個單元格數組只包含數值的單元格。它的名字是Q.將單元格數組轉換爲雙精度單元陣列

Q = { {[0] [1] [0] [238]} } 
Q{1} 

ans = 

    [0] [1] [0] [238] 

我想要做的是將所有這4個單元合併爲一個。 在這種情況下,它會像下面這樣:

Q{1} 

ans = 

    0  1  0 238 

任何幫助將非常感激。

回答

2

你有一個雙嵌套單元陣列:

Q = { {[0] [1] [0] [238]} } 

,你需要comma-separated lists把它改造成一個陣列。我假設你有內Q多個單元陣列,所以你可以使用cellfun

out = cellfun(@(x) [x{:}], Q,'uni',0) 

,你會得到

Q{1} = 

    [0] [1] [0] [238] 


out{1} = 

    0  1  0 238 

了一個元素,這相當於:

Q{1} = [Q{1}{:}] 

x中的cellfun操作相當於Q{i},其中i是runni ng變量。

但如果你只是有你的單元陣列中的這一個陣列,可以考慮:

out = cell2mat(Q{:}) 

因爲你不需要它是一個單元陣列的。

+1

'Q {1} = cell2mat(Q {1})'? –

+0

@thewaywewalk非常感謝,Q {1} = [Q {1} {:}]工作得很好。這就是我真正需要的。 :) – amno

+0

@LuisMendo有用的答案,它也工作完美! – amno

1

嘗試這樣做:

Q{1} = [Q{1}{:}] 
+0

感謝它也做了這項工作。 :) – amno

+1

下午好!我已經爲我們製作了一個MATLAB聊天室,所以我們可以討論任何與MATLAB相關的東西......可能是無關緊要的問題,或者不適合評論範圍的東西。當你有時間的時候請訪問我們! http://chat.stackoverflow.com/rooms/81987/matlab – rayryeng

相關問題