例如,我的單元格包含2個double值和一個int64值。如果單元格包含int,cell2table會將double值截斷爲int
>> cell2table({1.4;int64(4);3.2})
ans =
Var1
____
1
4
3
但是在轉換之後,它們不會被轉換爲int。這是預期的嗎?
例如,我的單元格包含2個double值和一個int64值。如果單元格包含int,cell2table會將double值截斷爲int
>> cell2table({1.4;int64(4);3.2})
ans =
Var1
____
1
4
3
但是在轉換之後,它們不會被轉換爲int。這是預期的嗎?
你是什麼意思的「轉換後」?你把桌子換成別的東西了嗎?
運行這些行告訴我該表中的數字實際上是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
。
在cell2table的參數中,1.4和3.2仍然是雙倍的。 cell2table是否將它們轉換爲int64? –
請參閱更新的答案。 – Yvon
這是cell2table的預期行爲嗎?我曾認爲它不會做任何隱式轉換。例如,cell2table({1;'a'; 4})不會將任何double或字符串轉換爲其他數據類型。如果存在int64值,爲什麼將double值轉換爲int64? –
你的意思是問在運行cell2table後雙*是否轉換爲整數?因爲所有的ans值都是整數,似乎與你的問題相矛盾。 – Cecilia