在元胞数组中提取和排列嵌套数据

Extracting and arranging nested data within cell array

我需要将 CDF(通用数据格式)文件导入 MATLAB。为此,我使用了 [cdfread][1] 命令。下面附上我的输出图像:

当我打开 data_import 时,第 4 列和第 5 列采用特定的 3 x 1 格式(如 data_import(1,4) 所示)。

我的问题是:是否有一种简单的方法可以提取第 4 列中每个单元格的数据,以便将 data_import(1,4) 中的第 2 行作为新列(即第 5 列)插入在原始数据中(data_import)?同样,data_import(1,4) 中的第 3 行应作为原始数据 (data_import) 中的新列(第 6 列)插入。还应在原始第 5 列数据中重复此过程,该数据在每个单元格中也具有类似的 3 x 1 结构。

我希望我所描述的内容不会太含糊,但我真的不确定我应该如何处理调用操作的命令。提前谢谢你。

您想要的最终输出包含由这些单元格组成的列,这些单元格从 3 x 1 数组转换为 1 x 3 单元格数组,然后连接每一行。首先用 "wrong way round" 元素进行连接然后转置最终结果会更容易:

data_import = [data_import(:,1:3) num2cell([data_import{:,4}; data_import{:,5}]') data_import(:,6:end)];