2015-06-22 113 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

相关问题