2012-08-11 98 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