我会让输出说明一切:
>> numFiles, meanTangle, sdTangle
numFiles =
526
meanTangle =
0.4405
sdTangle =
0.1285
现在,当我从这些变量中创建一个向量时:
>> [numFiles meanTangle sdTangle]
ans =
526 0 0
另外,只是为了澄清:
>> class(numFiles)
ans =
int32
>> class(meanTangle)
ans =
double
>> class(sdTangle)
ans =
double
为什么MATLAB在没有强制转换的情况下将浮动(meanTangle
和sdTangle
)转换为int?
答案 0 :(得分:5)
它会将您的所有双精度转换为整数,因为您的数组包含单个int。这与精确问题有关。
它将整个数组转换为int32:
类型>> class(ans)
ans =
int32
答案 1 :(得分:4)
由于未解释的原因,MATLAB将数组中的整数数据类型与浮点数据组合以返回整数数据类型。
点击此处了解详情Float becomes integer
。你的numFiles
是一个整数,所以它将所有其他变量也转换为整数。