2012-08-11 95 views
4

我先给本身输出讲:MATLAB自动转换双没有明确的强制转换为int

>> 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转换浮动(meanTanglesdTangle)为int而不投射?

回答

4

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

它把整个数组为Int32类型:

>> class(ans) 

ans = 

int32 
3

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

检查了解更多信息Float becomes integer
您的numFiles在这里是一个整数,所以它将所有其他变量也转换为整数。

+0

即使它不是直观的,这是一个记录的行为。请参阅文档中的[与类不同](http://www.mathworks.com/help/techdoc/matlab_prog/br04cfa-1.html)。 – Amro 2012-08-11 08:14:03