我有一个包含一个非常非常大的矩阵的文件,大小为数百万 x 数百,我想进一步处理这个矩阵,同时节省内存。但不幸的是, dlmread 返回一个双精度型矩阵。
这个文件中的数字只有 0-255,所以 uint8 是最合适的。但是我已经达到了内存限制,当我尝试使用 myMat = single(myMat); 将加载的矩阵转换为 uint8 时,Matlab 开始大喊“内存不足”错误。这是有道理的,因为在删除旧矩阵之前必须创建一个新矩阵。
我可以对此做些什么吗?
我有一个包含一个非常非常大的矩阵的文件,大小为数百万 x 数百,我想进一步处理这个矩阵,同时节省内存。但不幸的是, dlmread 返回一个双精度型矩阵。
这个文件中的数字只有 0-255,所以 uint8 是最合适的。但是我已经达到了内存限制,当我尝试使用 myMat = single(myMat); 将加载的矩阵转换为 uint8 时,Matlab 开始大喊“内存不足”错误。这是有道理的,因为在删除旧矩阵之前必须创建一个新矩阵。
我可以对此做些什么吗?