如果单元格包含int,则cell2table会将double值截断为int

时间:2017-03-02 01:46:51

标签: matlab

例如,我的单元格包含2个double值和1个int64值。

>> cell2table({1.4;int64(4);3.2})

ans = 

    Var1
    ____

    1   
    4   
    3 

但转换后,它们不会转换为int。这是预期的吗?

1 个答案:

答案 0 :(得分:0)

你是什么意思"转换后"?你把表转换成别的吗?

运行这些行告诉我该表中的数字实际上是int64。

>> A = cell2table({1.4;int64(4);3.2})

A = 

    Var1
    ____

    1   
    4   
    3   

>> class(A.Var1)

ans =

int64

>> class(A.Var1(1))

ans =

int64

>> class(A.Var1(2))

ans =

int64

>> class(A.Var1(3))

ans =

int64

编辑:cell2table执行转换。证明:

>> tt = {1.4;int64(4);3.2}

tt = 

    [1.4000]
    [     4]
    [3.2000]


>> class(tt{1})

ans =

double

>> class(tt{2})

ans =

int64

>> class(tt{3})

ans =

double

在单元格数组中,数据类型仍为double