将元胞元胞数组转换为双精度元胞数组

Convert a cell array of cells to cell arrays of doubles

比方说,我有一个仅包含数值的单元格数组。它的名字叫Q。

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

ans = 

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

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

Q{1}

ans =

     0     1     0   238

任何帮助将不胜感激。

您有一个双嵌套元胞数组:

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}{:}]

因为 cellfun 操作中的 x 等同于 Q{i} 其中 i 是 运行 变量。

但是,如果您的元胞数组中只有一个数组,请考虑:

out = cell2mat(Q{:})

因为您根本不需要将其作为元胞数组。

尝试这样做:

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