matlab 数组写入文件名,Matlab将数组写入.txt文件

Matlab将数组写入.txt文件

2018/6/28

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

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

save res.txt res;

结果导出的文件内容为乱码:

e6708678c3cfa53abf9a58f50e427b8f.png

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

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

save res.txt res -ascii;

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

2ae81637028392712b96107a0b681003.png

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

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

fid=fopen('test.txt','wt'); %写的方式打开文件(若不存在,建立文件);

fprintf(fid,'%d ',ytt); % %d 表示以整数形式写入数据,这正是我想要的;

fclose(fid); %关闭文件;

注:此处fprintf是可以直接将一个数组一起写入文档的,上面例子中的ytt为数组名即可,在格式部分(%d),只要设置好字符间的分割方式就好了,比如本例中是要求写入txt的数据之间用空格分隔。

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

作为函数,参数都是字符型,需要将输入放在引号内,举例如下:

save('test.txt','var','-ascii');

save('test.mat','var');

作为方法,用命令式语句写即可,无需使用其他特殊字符,举例如下:

save test.txt var -ascii;

save test.mat var;

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值