【问题标题】:Matlab equivalent of Python Panda's dtypesMatlab 相当于 Python Panda 的 dtypes
【发布时间】:2019-03-06 23:17:59
【问题描述】:

如果我在 python 中有 pandas.DataFrame,我可以使用 dtypes attribute 检查 DataFrame 的数据类型。我怎样才能对 Matlab 表做同样的事情?我探索了Properties 机制,但没有找到任何面向那里的类型。

【问题讨论】:

  • 不是有一个属性叫VariableTypes吗? mathworks.com/help/matlab/ref/table.html
  • 如果我在属性之后尝试使用. 选项卡完成,我会收到DescriptionDimensionNamesRowNamesUserDataVariableContinuityVariableDescriptionsVariableNamesVariableUnits。我在 Matlab 2018a 中。阅读文档后,VariableTypes 似乎是一个强制数据类型的输入字符串。
  • 看起来还有一个vartype 函数可以从特定类型的table 中获取变量。但这也是一种不同的操作。我正在尝试做一些比选择性更内省的事情。

标签: python pandas matlab matlab-table


【解决方案1】:

看来你可以调用如下:

varfun(@class,t,'OutputFormat',table)


class_var1   class_var2    class_var3    class_var4 
__________   __________    __________    __________

double       double        double        double  

t 是您的桌子。我参考答案here

varfun 的更多文档也可在here 获得。

【讨论】:

  • 很好的发现,它在我的特定桌子上令人窒息,但我认为因为它有一些嵌套矩阵类型或其他东西。当我在 DataInspector 中检查它时,一些变量有一些“合并”列,例如变量 2 跨越 4 列:class(t) ; ans = 'table'; varfun(@class,t,'OutputFormat',cell) ; Error using cell Not enough input arguments.
  • @jxramos:如果你想为单个列找到类,你也可以简单地说class(t.var1)
【解决方案2】:

看起来获取这些信息的一种方法(不幸的是得到了一堆其他东西)是通过简单地调用summary

这是一些示例输出

K>> summary(t)

Variables:

    var1: 2966185×1 double

        Units:  sec
        Values:

            Min       56.207
            Median    7466.7
            Max        14878

    var2: 2966185×4 double

        Values:
                        var2_1        var2_2      var2_3      var2_4
                      ________    __________    ________    ________

            Min       -0.99966      -0.99901    -0.99887    -0.99998
            Median     0.01644    -0.0044018     0.12838      0.1564
            Max        0.98176       0.96433     0.99998           1

    var3: 2966185×3 double

        Units:  g
        Values:
                         var3_1        var3_2        var3_3
                      __________    _________    __________

            Min           -2.779      -3.1366       -3.6089
            Median    -0.0002124    -0.002221    -0.0020435
            Max           3.7874       5.9634        2.8443


    var4: 2966185×1 double

        Values:

            Min          0
            Median       5
            Max          5

【讨论】:

  • 这是在告诉数据类型吗?
  • @rahlf23,当然,例如var1: 2966185×1 double,它是一个双列向量,var 2 和 3 是双精度矩阵。这似乎破坏了可能处理单维变量的varfun 解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
  • 2018-12-06
  • 2016-02-07
  • 2014-02-23
相关资源
最近更新 更多