如何输出这样的矩阵到txt
带有非数值字符的输出,除了上面同学提到的自定义输出格式以外,还可以将其看成字符串进行输出。如下:
clear
clc
%构造A矩阵
A = 1:9;
A = reshape(A,3,3)';
%转换为字符串操作
B = mat2str(A);
%将空格替换为逗号
B(B == ' ') = ',';
index = find(B == ';');
%将分号变成空格
B(index) = ' ';
f = fopen('','w');
h = 2;
%分别输出B矩阵中的每一行
for fi = 1:length(index)
fprintf(f,'%s\r\n',B(h:index(fi)));
h = index(fi) + 1;
end
fprintf(f,'%s\r\n',B(h:end-1));
fclose(f);
另外matlab输出换行的话是\r\n.单单是\n是不行的。
如何将一个矩阵存入txt文件
不要求格式的话,可以用save直接保存,要求格式的话可以用fprintf
save(FILENAME,VARIABLES,'-ascii')
FILENAME,文件名
VARIABLES,变量名
'-ascii'是固定的参数,指定以文本方式输出
fprintf(FID, FORMAT, A)
FID是通过fopen得到的文件id
FORMAT是格式字符串
A是输出的变量
详细可以参考matlab对应帮助文件
中,把矩阵的数据输出为txt文本,如何让文本结果显示为“a(
你已经快接近了,以后有什么不懂的可以在命令窗口里面输入 doc+"你要查询的函数"自己看帮助文件。
你的程序要这么改:
a=[17,24,1,8,15,23,5,7,14,16];
fid = fopen('','wt');
for i=1:length(a)
fprintf(fid,'a(%d)=%g\n',i,a(i));
end
fclose(fid);就可以到达你的效果。
数组怎样输出到txt文件里
在matlab中要将大规模的矩阵写入到txt文本中,可以用文件读写的方法,如下例:
fid=fopen('D:\','wt');%写入文件路径
[m,n]=size(p); %获取矩阵的大小,p为要输出的矩阵
for i=1:1:m
if mod(i,100)==0
fprintf(fid,'water levle since %d hours\n',i/100-1);
end
for j=1:1:n
if j==n %如果一行的个数达到n个则换行,否则空格
fprintf(fid,'%4.3f\n',p(i,j));
else
fprintf(fid,'%4.3f\t',p(i,j));
end
end
end
fclose(fid);
因为矩阵比较大,可能要运行比较长的时间,请耐心等待
输出矩阵到txt文件 为什么是一列列的输出
1、因为大部分存到txt的数据都是以列为形式的列向量,如果有行向量,也可以一行行的输出。
2、按行输出数据的程序如下,这种程序比较灵活,可以直接套用,假设A为要存储的数据矩阵:
fid=fopen('文件路径','wt'); %新建文件,你要保存到的文件路径,该路径的最后为'\文件名.txt'
[m,n]=size(A); %接上,或者是'\文件名.dat'
for j=1:m
for z=1:n
if z==n
fprintf(fid,'%g\n',total(j,z)); %一行一行的写入数据,到该行的最后一个数据,回车
else
fprintf(fid,'%g\t',total(j,z)); %相邻两个数据之间隔2个字符,相当于按一次Tab键
end
end
end
fclose(fid);
6.(急)
dlmwrite('',A,'delimiter','\t','precision','%3.2f');
解释:
为输出的文件
A为输出的矩阵
'delimiter','\t' 表示分隔符为制表符
'precision','%3.2f' 表示不以科学计数法输出,输出形式为:小数点前有3位数,小数点后有2位数。
假如矩阵元素全是整数,那么'%.0f', 控制小数点后没有数,即为输出整数。
希望可以帮助你。