Matlab将数组写入.txt文件

Matlab将数组写入.txt文件

2018/6/28

今天用MATLAB写作业,想要将得到的一系列分类数据(0,1)导出到.txt文件,从开始到最后总共用了三种方法。

1.最初用了最常用的save 函数:

save res.txt res;

结果导出的文件内容为乱码:
这里写图片描述
通过help文档了解到save函数默认导出的文件格式为二进制文件,即.mat文件。所以即使文件名用了.txt后缀,也无法自动识别为文本文件,所以用文本工具打开就是乱码。

2.根据帮助文档的说明,将代码改为如下形式,即在最后加上了保存文件的格式为ASCII文件:

save res.txt res -ascii;

文件成功导出,但是存在一个问题就是文本文件打开后,显示的每个数字后面都带有一长串的0,看着很不舒服:
这里写图片描述

在文档中发现这种方法保存的是8位精度的格式,似乎没有办法修改小数点保留位数。

3.通过网上查看别人的经验,发现不使用简单的save函数,而是通过类似C中朴素的建立文件然后写入数据的方法来实现内容格式的修改:

fid=fopen('test.txt','wt'); %写的方式打开文件(若不存在,建立文件);
fprintf(fid,'%d\n',ytt);  % %d 表示以整数形式写入数据,这正是我想要的;
fclose(fid);  %关闭文件;

最后关于save函数(方法)再稍稍注明一下,它有两种用法,一种是作为函数的用法,另一种是更为简单的命令式的用法:

  • 作为函数,参数都是字符型,需要将输入放在引号内,举例如下:
save('test.txt','var','-ascii');
save('test.mat','var');
  • 作为方法,用命令式语句写即可,无需使用其他特殊字符,举例如下:
save test.txt var -ascii;
save test.mat var;

关于save函数的其他用法,一定先去参考Matlab的help文档,里面介绍的很详细。

猜你喜欢

转载自blog.csdn.net/weixin_39986952/article/details/80849405