将元胞元胞数组转换为双精度元胞数组
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}{:}]
比方说,我有一个仅包含数值的单元格数组。它的名字叫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}{:}]