Matlab 提取和排列单元数组中的嵌套数据

Matlab 提取和排列单元数组中的嵌套数据,matlab,netcdf,cdf,Matlab,Netcdf,Cdf,我需要将一个CDF(公共数据格式)文件摄取到MATLAB中。为此,我使用了[cdfread][1]命令。我的输出图像附在下面: 当我打开数据导入时,第4列和第5列采用特定的3x1格式(如数据导入(1,4)所示) 我的问题是:是否有一种简单的方法来提取第4列中每个单元格的数据,例如对于data\u import(1,4)中的第2行,它将作为新列(即第5列)插入原始数据(data\u import)中?类似地,数据导入(1,4)中的第3行应作为新列(第6列)插入原始数据(数据导入)。在原始第5列数据

我需要将一个CDF(公共数据格式)文件摄取到MATLAB中。为此,我使用了[
cdfread
][1]命令。我的输出图像附在下面:

当我打开
数据导入
时,第4列和第5列采用特定的
3x1
格式(如
数据导入(1,4)
所示)

我的问题是:是否有一种简单的方法来提取第4列中每个单元格的数据,例如对于
data\u import(1,4)
中的第2行,它将作为新列(即第5列)插入原始数据(
data\u import
)中?类似地,
数据导入(1,4)
中的第3行应作为新列(第6列)插入原始数据(
数据导入
)。在原始第5列数据中也应重复此过程,该列数据在每个单元格中也具有类似的
3 x 1
结构


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

您所需的最终输出包含由这些单元格组成的列,这些单元格从
3 x 1
数组转换为
1 x 3
单元格数组,然后为每行连接。更容易的做法是先将元素“按错误的方向循环”,然后转置最终结果:


所需的最终输出具有由这些单元格组成的列,这些单元格从
3 x 1
数组转换为
1 x 3
单元格数组,然后为每行连接。更容易的做法是先将元素“按错误的方向循环”,然后转置最终结果:


你需要重塑你的
horzcat
调用,否则会出错。它们被重塑了,
操作符将
horzcat
的结果从
3xn
转换到
nx3
。不,它不会。
horzcat
的输出是
1xn
。我做到了,它做到了。在回答中,您似乎假设单元格的内容是
1 x 3
,这不是问题所在。然而,就我而言,我假设它是一个
3x1
单元阵列,而事实并非如此,因此我最初的示例确实会失败。感谢您对这个解决方案的及时讨论,这正是我所需要的。我们也将借此机会进一步了解该解决方案。非常感谢!你需要重塑你的
horzcat
调用,否则会出错。它们被重塑了,
操作符将
horzcat
的结果从
3xn
转换到
nx3
。不,它不会。
horzcat
的输出是
1xn
。我做到了,它做到了。在回答中,您似乎假设单元格的内容是
1 x 3
,这不是问题所在。然而,就我而言,我假设它是一个
3x1
单元阵列,而事实并非如此,因此我最初的示例确实会失败。感谢您对这个解决方案的及时讨论,这正是我所需要的。我们也将借此机会进一步了解该解决方案。非常感谢!
data_import = [data_import(:,1:3) num2cell([data_import{:,4}; data_import{:,5}]') data_import(:,6:end)];