JAVAでHDFファイルを書くためのフレームワークを書いています(既存のフレームワークを使用しています)。オクターブとの互換性を保つ必要があります。つまり、オクターブは私のフレームワークが書き込むファイルを読み取ることができ、逆もまた同様です。
私の質問は、Octave には float と double の 2 つのデータ型がありますか、それとも double のみを使用するのでしょうか?
ありがとう
JAVAでHDFファイルを書くためのフレームワークを書いています(既存のフレームワークを使用しています)。オクターブとの互換性を保つ必要があります。つまり、オクターブは私のフレームワークが書き込むファイルを読み取ることができ、逆もまた同様です。
私の質問は、Octave には float と double の 2 つのデータ型がありますか、それとも double のみを使用するのでしょうか?
ありがとう
内部的にOctaveは、doubleスカラーとfloatスカラーの両方、およびfloat/double行列を処理します。オクターブはテンプレートを使用してスカラー型をインスタンス化し、オクターブが両方の型を効率的に処理できるようにします。
しかし、あなたの問題は、ファイルを使用してOctaveとデータを交換するときに使用するデータ形式にあるようです。
保存するオクターブのデフォルトのデータ形式はバイナリです。たとえば、倍精度浮動小数点値です。ただし、Octaveはfloat形式で保存できるため、データが切り捨てられます。
OctaveはHDF5形式で保存することもできます。サポートされているすべての形式がここにリストされています。
一方、Javaバイナリオブジェクトのシリアル化は少し注意が必要です。これは、Javaがリフレクションをサポートし、オブジェクトを自動的にシリアル化および再インスタンス化できるためですが、私の経験から、書き込まれたファイルはJVMバージョン間で互換性がありません。