在matlab中生成.dat文件时相对比较麻烦的,尤其是需要将内容连续写入一个文件时。
最近在训练一个神经网络,需要将2562563的彩色图片数据转换为一个一维向量(大小为1行2562563列),并将所有图片数据拼接成一个一维向量并生成一个dat文件。
找了好久终于找到一个可靠的方法,如下:
%这里打开相应路径下的.dat文件
fid=fopen('pictures.dat','a');
%J为你需要写入的矩阵或者向量,这里计算他的长度
J_length=length(J);
%从这里开始将数据写入到dat文件
for jj=1:1:J_length
fprintf(fid,'%g\n',J(1,jj));
end
% 关闭打开的.dat文件
%注意记得加上这条语句,否则可能会对文件造成损害
fclose(fid);
如果需要连续写入:
fid=fopen('pictures.dat','a');
J_length=length(J);
%相对于上面的代码,区别之处在于这里加了一个循环,看需要写入多少次数据
for i=1:1:10
for jj=1:1:J_length
fprintf(fid,'%g\n',J(1,jj));
end
end
fclose(fid);