[转载]Matlab中的保存数据语句比较

Matlab中的保存数据语句比较
2009-09-15 15:58
Matlab中,我们经常遇到需要将一些中间数据或者最终结果保存为文本形式(*.txt);其中提供了多种保存数据的语句,应该如何选择喃?
在此,小弟在使用了fprintf、save、dlmwrite的基础上,对这三种方法进行了一个比较:
     fprintf(fid, format, A, ...),将数据A以format表示的格式写入fid(文件)中,fid由fopen函数返回得到。
     实例:     x = 0:.1:1;
               A = [x; exp(x)];
               fid = fopen('exp.txt', 'wt');
               fprintf(fid, '%6.2f %12.8fn', A);
               fclose(fid)
     save filename.txt A   -format,将数据A以format表示的格式写入filename文本文件中。
     实例:     x = 0:.1:1;
               A = [x; exp(x)];
               save   data.txt A -ASCII
   dlmwrite('filename.txt', A, 'D', R, C),从矩阵A的第R行、第C列开始,使用分隔符D分割数据(“t”表示tab分割,“,”为默认分割符),存储到filename文本文件中。
     实例:     x = 0:.1:1;
               A = [x; exp(x)];
               dlmwrite(‘data.txt', A, 'delimiter', 't', 'precision', 6);
   使用时,save保存的数据是以科学计数法的 方式存储的;fprintf和dlmwrite则是可以选择存储数据的方式,fprintf的格式设置跟C语言中的用法一致,dlmwrite可以设置有 效位位数,比如上面实例中6表示有效位位数是6位,dlmwrite中对数据中的小数就采用浮点数存储,整数就采用整型存储形式。
   在使用时,可根据自己实际情况的需要选择适合的一种。个人觉得matlab本身的这种以科学计数法来表示数据,有时不方便于查看。还有一点就是fprintf是按照矩阵列存储。
原文地址:https://www.cnblogs.com/gisalameda/p/12840620.html