4

我会让输出自己说话:

>> 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 将浮点数 ( meanTangleand sdTangle) 转换为 int 而不进行强制转换?

4

2 回答 2

5

它将所有双精度数转换为整数,因为您的数组包含一个整数。这与精度问题有关。

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

>> class(ans)

ans =

int32
于 2012-08-11T00:18:08.073 回答
4

由于未解释的原因,MATLAB 定义了将数组中的整数数据类型与浮点数据组合以返回整数数据类型。

检查此以获取更多信息Float 变为 integer
numFiles在这里是一个整数,因此它将所有其他变量也转换为整数。

于 2012-08-11T00:14:58.597 回答