将单元格的单元格数组转换为双精度单元格数组

时间:2015-06-22 16:40:01

标签: arrays matlab cell-array

假设我有一个仅包含数值的单元格单元格。它的名字是Q.

Q{1}

ans =

     0     1     0   238

我想做的是将所有这4个细胞合并为一个。 在这种情况下,它将类似于下面的那个:

sed

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分: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是正在运行的变量。

但是如果你在单元格数组中只有这个数组,请考虑:

out = cell2mat(Q{:})

因为你根本不需要它是一个单元格数组。

答案 1 :(得分:1)

尝试这样做:

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