|
呵呵,我这两天运行的程序占用内存也很大,遇到了一样的问题,虽然我的工作站内存有10G之多,但仍不够开销。下面说一下解决办法。
上面介绍到用fprintf,对于大量的矩阵存储,这个方法效率非常低。
可以用fwrite函数将矩阵写入文件。
定义一个500*50*25的三维矩阵IS,
node=25;
IS=repmat(2000,[500,50,node]);
for i=1:node
filename=strcat(num2str(i),'IS','.','bin');
fid=fopen(filename,'wb');
fwrite(fid,IS(:,:,i),'integer*2');
end
这里将IS的中每个二维矩阵写入对应的文件名中,文件存储用了二进制格式。二进制文件在windows下好象无法直接查看。如果想查看,可以用以下代码读取
NIS=repmat(0,[500,50,node]);
for i=1:node
filename=strcat(num2str(i),'IS','.','bin');
fid=fopen(filename,'rb');
NIS(:,:,i)=fread(fid,[500 50],'integer*2');
fclose(fid);
end
第一次回答问题,不足之处大家批评啊,:lol |
评分
-
1
查看全部评分
-
|