3

サイズが数百万 x 数百の非常に巨大な行列を含むファイルがあり、この行列をさらに処理し、同時にメモリを節約したいと考えています。残念ながら、dlmread は double 型の行列を返します。

このファイルの数値は 0 ~ 255 のみであるため、uint8 が最適です。しかし、メモリ制限に達し、読み込まれた行列を myMat = single(myMat); で uint8 に変換しようとすると、Matlab が「メモリ不足」エラーを叫び始めます。古いマトリックスを削除する前に新しいマトリックスを作成する必要があるため、これは理にかなっています。

これで何かできますか?

4

1 に答える 1

4

(外部プログラムを使用して) データ ファイルを適切な (すなわちロスレス) 8 ビット イメージ形式に変換し、imread. データ変換が含まれていないため、このファイルの読み取りも非常に高速です。

于 2013-01-15T17:28:56.493 に答える