3

我有一个包含一个非常非常大的矩阵的文件,大小为数百万 x 数百,我想进一步处理这个矩阵,同时节省内存。但不幸的是, dlmread 返回一个双精度型矩阵。

这个文件中的数字只有 0-255,所以 uint8 是最合适的。但是我已经达到了内存限制,当我尝试使用 myMat = single(myMat); 将加载的矩阵转换为 uint8 时,Matlab 开始大喊“内存不足”错误。这是有道理的,因为在删除旧矩阵之前必须创建一个新矩阵。

我可以对此做些什么吗?

4

1 回答 1

4

您可以将数据文件转换为合适的(即无损)8 位图像格式(使用外部程序),然后使用imread. 读取这个文件也应该快很多,因为不涉及数据转换。

于 2013-01-15T17:28:56.493 回答