たとえば、myセルには2つのdouble値と1つのint64値が含まれます。セルがintを含む場合、cell2tableはdouble値をintに切り捨てます
>> cell2table({1.4;int64(4);3.2})
ans =
Var1
____
1
4
3
ただし、変換後はintに変換されません。これは期待されていますか?
たとえば、myセルには2つのdouble値と1つの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
変換を行います。証明:データ型が依然としてdouble
あるセルアレイ内
>> 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
。
cell2tableの引数では、1.4と3.2はまだ二重です。 cell2tableはint64に変換しますか? –
更新された回答をご覧ください。 – Yvon
これはcell2tableの予想される動作ですか?私は暗黙の変換を行わないと思っていました。たとえば、cell2table({1; 'a'; 4})は、doubleや文字列を他のデータ型に変換しません。 int64値がある場合、double値がint64に変換されるのはなぜですか? –
cell2tableを実行した後で倍精度*がintに変換されているかどうかを尋ねることを意味しましたか?あなたの質問に矛盾していると思われるint値です。 – Cecilia