将 matlab 中数据输出保存为 txt 或 dat 格式 总结网上各大论坛, 主要有三种方法。 第一种方法: save(最简单基本的) 具体的命令是: 用 save *.txt -ascii x x 为变量 *.txt 为文件名,该文件存储于当前工作目录下, 再打开就可以 打开后,数据有可能是以指数形式保存的. 例子: a =[1 7 24 1 8 1 5;23 5 7 1 4 1 6 ;4 6 1 3 20 22 ;1 0 1 2 1 9 21 3 ;1 1 1 8 25 2 9 ]; save afile.txt -ascii a afile.txt 打开之后, 是这样的: 1 .7000000e+001 2.4000000e+001 1 .0000000e+000 8.0000000e+000 1 .5000000e+001 2.3000000e+001 5.0000000e+000 7.0000000e+000 1 .4000000e+001 1 .6000000e+001 4.0000000e+000 6.0000000e+000 1 .3000000e+001 2.0000000e+001 2.2000000e+001 1 .0000000e+001 1.2000000e+001 1 .9000000e+001 2.1 000000e+001 3.0000000e+000 1 .1 000000e+001 1.8000000e+001 2.5000000e+001 2.0000000e+000 9.0000000e+000 第二种方法: dlmwrite dlmwrite('a.txt',a,'precision','%1 0.0f') 或者是 dlmwrite('a.txt',a,'delimiter', '\t') 对于只有一行或者一列的数据, 很适用, 但是多行的, 就乱了 网上有很多这一类似的问题, 但是都不是很理想 第三种方法: fopen+fprintf 下面主要介绍这种方法, 可以解决以上问题: 用 fprintf 命令: 以上面的例子为例: 第一种情况: >> a=[1 7 24 1 8 1 5;23 5 7 1 4 1 6 ;4 6 1 3 20 22 ;10 1 2 1 9 21 3 ;1 1 1 8 25 2 9 ]; >> fid = fopen('b.txt','wt'); fprintf(fid,'%g\n',a); # \n 换行 fclose(fid); 然后用写字板打开 b.txt, 内容如下: 为列向量 1 7 23 4 1 0 1 1 24 5 6 1 2 1 8 1 7 1 3 1 9 25 8 1 4 20 21 2 1 5 1 6 22 3 9 第二种情况: 对上面的命令做一下改动: # \n 换行改为\t, table 键 >> fid = fopen('b.txt','w'); fprintf(fid,'%g\t',a); fclose(fid); 然后用写字板打开 b.txt, 内容如下: 为行向量: 1 7 23 4 1 0 1 1 24 5 6 12 1 8 1 7 1 3 1 9 25 8 1 4 20 21 2 1 5 16 22 3 9 第三种情况: 综合上面的两个结果, 我们编写以下命令: