我在 MATLAB(版本 7)中有一个 30000x14000 的稀疏矩阵,我需要在另一个程序中使用它。调用 save 不会将其写为 ASCII(不支持)。对此怪物调用 full()
会导致 Out of Memory
错误。
如何导出?
最佳答案
您可以使用 find 来获取索引和值向量:
[i,j,val] = find(data)
data_dump = [i,j,val]
您可以使用 spconvert 从 data_dump 重新创建数据,这意味着“从稀疏矩阵外部格式导入”(所以我想这是一种很好的导出格式):
data = spconvert( data_dump )
您可以使用以下方式保存为 ascii:
save -ascii data.txt data_dump
但这会将索引转储为 double ,您可以使用 fopen/fprintf/fclose 更好地写出它:
fid = fopen('data.txt','w')
fprintf( fid,'%d %d %f\n', transpose(data_dump) )
fclose(fid)
希望这对您有所帮助。
关于matlab - 如何将非常大的 MATLAB 稀疏矩阵保存到文本文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217852/