Matlab 表和分类数组以及单元格和结构数组之间有什么区别?

Matlab 表和分类数组以及单元格和结构数组之间有什么区别?,matlab,Matlab,在最新版本的MATLAB中,有两种新的数据类型:表和分类数组 Table是一种新的数据类型,适合保存数据和元数据,可以与混合类型的表格数据一起使用,这些数据通常作为列存储在文本文件或电子表格中。它由面向行和面向列的变量组成 分类数组用于保存分类数据,这些数据的值来自离散类别的有限列表 在以前的版本中,我会使用cell和struct数组处理这些用例。这些数据类型与新的数据类型之间有什么区别?我还没有升级,所以我不能随便玩,但基于这些数据类型,我已经看到了一些优势。他们不一定要添加以前无法添加的功能

在最新版本的MATLAB中,有两种新的数据类型:表和分类数组

Table是一种新的数据类型,适合保存数据和元数据,可以与混合类型的表格数据一起使用,这些数据通常作为列存储在文本文件或电子表格中。它由面向行和面向列的变量组成

分类数组用于保存分类数据,这些数据的值来自离散类别的有限列表


在以前的版本中,我会使用cell和struct数组处理这些用例。这些数据类型与新的数据类型之间有什么区别?

我还没有升级,所以我不能随便玩,但基于这些数据类型,我已经看到了一些优势。他们不一定要添加以前无法添加的功能,而是要消除麻烦。在
xlsread
上使用
readtable
对我很有吸引力。能够通过名称而不仅仅是索引来访问列非常棒,我经常用其他语言来访问。在列顺序无关紧要的表中(与矩阵不同),可以通过列的名称对列进行寻址,而不必知道列的顺序,这非常方便。您还可以使用
join
函数合并表,这在以前的单元格数组中是不容易做到的。我知道你也可以命名行,我不知道这会给你带来什么好处,我也不能到处玩,但我知道在一些语言中(比如Python中的PANDAS,我认为在R中也是如此)命名行意味着你可以使用不同序列的时间序列数据,这些序列不完全重叠,也不必担心对齐问题。我希望在Matlab中也是如此!分类数组看起来也只是一个额外的方便层,有点像
enum
。实际上,您并不需要
enum
,但它只会让开发更加愉快


不管怎么说,这只是我的两分钱,我可能不会很快有机会和他们一起玩,但我期待着在我确实需要它们的时候使用它们

我使用表格格式在数据中组织不同的输入/输出案例,结果可能来自不同的表格。与结构或单元阵列相比的主要优势:

  • 方便的表函数,如join、innerjoin、outerjoin
  • 字段的使用比数组更健壮的编程
  • 数据格式易于导出/导入(例如分隔的.txt文件)无fprintf()
  • 数据文件可以在excel/Calc(libreoffice)no.mat中打开

我落后于时代……不太落后,它刚刚问世。:)谢谢你的回答和链接。我惊讶地发现,这个问题被搁置了……同样,问题是,两者之间有什么区别,这实际上不是一个意见问题。我想看看其他使用过它们的人对它们的了解。