[初学笔记] matlab中怎么把数据循环写入txt文件

问题是,在循环里面,把每一次循环的数据都写入txt文件,下一个循环的数据,紧接着写出来


当然可以有一个解决问题就是,设置cell,把每次的循环的数据都存在里面,最后在循环外面输入到txt文件或者Excel文件

但是我觉得这样很麻烦,我的程序是循环套循环,很多嵌套。所以决定还是按照原来的思路来改

也就是把写入文件的代码都放到循环里面,然后每次运行的结果都会保存在文件里面

所以需要进行一个工作,就是循环写入我的数据

关于Excel的循环写入在上一篇文章中

这次是txt的文件


然而问题非常简单,因为txt文件的写入命令其实很完善

只要留意txt文件的 fopen 的指令后面的 permission就可以了


w 的话是可以写入,但每次写入都会刷新数据

a 的话就是可以从上一次数据写入 最末端继续写入


关于循环写入的换行问题,依然是转义字符的使用

假设我输出里面 output1 和 output2 是我的 两个已经定义好的变量,他们的数据类型当然本身都是字符串

下面是一个可以实现的代码


        txtfile1 = fopen('result.txt', 'a');
        fprintf(txtfile1,'%s score is : %s %s %s \r\n\n ','name','sum','mean','std');
        fprintf(txtfile1,'%s score is : %d %5.3f %5.3f \r\n ',yourname,ysum,ymean,ystd);
        fprintf(txtfile1,'%s score is : %d %5.3f %5.3f \r\n ',dreamyname,dsum,dmean,dstd);
        fprintf(txtfile1,'%s\n',output1,output2);
        fclose (txtfile1); 


但是这个代码,不能实现 output1 和 output2 之间的换行

然后就想起来可以用strcat的函数,并在里面运用ascii代码,跟之前在input中实现的一样,就可以换行了

13 是换行的意思,32 是空格的意思

下面是改良的代码

        txtfile1 = fopen('result.txt', 'a');
        fprintf(txtfile1,'%s score is : %s %s %s \r\n\n ','name','sum','mean','std');
        fprintf(txtfile1,'%s score is : %d %5.3f %5.3f\r\n ',yourname,ysum,ymean,ystd);
        fprintf(txtfile1,'%s score is : %d %5.3f %5.3f\r\n ',dreamyname,dsum,dmean,dstd);
        output = strcat(13,output1,13,output2,13,13);
        fprintf(txtfile1,'%s\n',output);
        fclose (txtfile1);   




你可能感兴趣的:(Matlab学习)