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

meanTangleMATLAB が float (およびsdTangle) をキャストせずに int に変換するのはなぜですか?

4

2 に答える 2

5

配列には単一の int が含まれているため、すべての double が int に変換されます。これは精度の問題に関係しています。

配列全体を int32 型に変換します。

>> class(ans)

ans =

int32
于 2012-08-11T00:18:08.073 に答える
4

理由は説明されていませんが、配列内の整数データ型を浮動小数点データと組み合わせると、整数データ型を返すように MATLAB によって定義されます。

詳細については、これを確認してくださいFloat は integer になり ます。
ここnumFilesでは整数なので、他のすべての変数も整数として変換されます。

于 2012-08-11T00:14:58.597 に答える