matlab如何将运行的结果保存在txt中?

例如 x=0:0.1:6
y=x.^2
如何将这(x,y)这60对数据保存在一个txt中?

可以先用fopen打开或创建一个txt文件,然后用fprintf输出。
给出示例代码如下:

%%

clc;clear;

f_id=fopen('test.txt','wt');%在当前目录以写的方式打开或创建txt文件

a=randi(9,10);%定义要输出的矩阵 这里用了一个随机整数矩阵代表要输出的结果做示例

for i=1:10

    fprintf(f_id,'%d ',a(i,:));%输出 可以整行输出 并统一控制格式

    fprintf(f_id,'\n');%换行

end

fclose(f_id);%关闭文件


运行结束后,打开当前目录的test.txt,会看到被输出的内容:


值得注意的一点:

fopen里面的模式对于文本文件,用的是'wt',后面要加一个t表示是文本文件,不然换行会出问题。如果用'w'模式则需要'\r\n'才会换行。

对此matlab给出了如下解释:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-09-23
Matlab网站用两个例子非常详尽地介绍了各个命令的基本用法以下结合几个示例给出一些总结,大家举一反三就可以了:

1. 纯数据(列数相同):
源文件:

CODE:
0 3866.162 2198.938 141.140
1 3741.139 2208.475 141.252
2 3866.200 2198.936 141.156
3 3678.048 2199.191 141.230
4 3685.453 2213.726 141.261
5 3728.769 2212.433 141.277
6 3738.785 2214.381 141.256
7 3728.759 2214.261 141.228
8 3748.886 2214.299 141.243
9 3748.935 2212.417 141.253
10 3733.612 2226.653 141.236
11 3733.583 2229.248 141.223
12 3729.229 2229.118 141.186

解答:对于这个txt文件,由于各行列数相同,故简单地使用load,importdata均可。

2.字段名(中、英文字段均可)+数据:
源文件:

CODE:
CH0 CH1 CH2 CH3
0.000123 0.000325 0.000378 0.000598
0.000986 0.000256 0.000245 0.000698

解答:由于是记录的形式,因此各行列数必相同(缺少部分列时请自行在文件中补上 Inf 或 NaN),故直接使用 importdata 便可。

3.注释(含有独立的数字串)+数据(列数相同):
问题:这个文件有4列,但前6行是文字说明,4列数字是从第8行开始的.现在把这个文件的前2列和文字说明提出来组成一个新的dat文件

源文件:

CODE:
Group 2 12.02.2006 Limei
Samples of datas: 50000

CH0 CH1 CH2 CH3
0.000123 0.000325 0.000378 0.000598
0.000986 0.000256 0.000245 0.000698

目标文件:

CODE:
Group 2 12.02.2006 Limei
Samples of datas: 50000

CH0 CH1
0.000123 0.000325
0.000986 0.000256

解答:由于注释中含有独立的数字串,且注释部分没有明显的格式,这时候用importdata, load等高级命令直接读取会失败,用 textread, dlmwrite 等格式化命令也不太合适,因此只能使用低级命令进行读取。本回答被网友采纳
第2个回答  2015-08-18
dlmwrite('D:\yourresult.txt',yourresult);%将yourresult变量存入位于d盘下的yourresult.txt文件中
第3个回答  2015-10-07
save('xx.txt','result') result 是 要保存的变量 试试
第4个回答  2015-10-17
第二种方法:dlmwrite
dlmwrite('a.txt',a,'precision','.0f')
或者是dlmwrite('a.txt',a,'delimiter', '\t')
对于只有一行或者一列的数据,很适用,但是多行的,就乱了
网上有很多这一类似的问题,但是都不是很理想
第三种方法:fopen+fprintf
下面主要介绍这种方法,可以解决以上问题:用fprintf命令