MATLAB自动将double转换为int而不进行显式转换

abh*_*rni 4 double int matlab casting

我会让输出说明一切:

>> numFiles, meanTangle, sdTangle

numFiles =

         526


meanTangle =

    0.4405


sdTangle =

    0.1285
Run Code Online (Sandbox Code Playgroud)

现在,当我从这些变量中创建一个向量时:

>> [numFiles meanTangle sdTangle]

ans =

         526           0           0
Run Code Online (Sandbox Code Playgroud)

另外,只是为了澄清:

>> class(numFiles)

ans =

int32

>> class(meanTangle)

ans =

double

>> class(sdTangle)

ans =

double
Run Code Online (Sandbox Code Playgroud)

为什么MATLAB在没有强制转换的情况下将浮点数(meanTanglesdTangle)转换为int?

MrH*_*hma 5

它会将您的所有双精度转换为整数,因为您的数组包含单个int.这与精确度问题有关.

它将整个数组转换为int32类型:

>> class(ans)

ans =

int32
Run Code Online (Sandbox Code Playgroud)