关于matlab,\n的问题
clc,cleara=rand(500,1000);c=randi([10,100],1000,1);b=randi([100,200],500,1);fid=fopen...
clc,clear
a=rand(500,1000);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
fprintf(fid,'%f\n',a);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',c);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',b);
fclose(fid);
这个程序里面的‘%4d\n’等里面的\n是换行的意思吗?如果是,为什么打开txt文件以后还是没有换行的效果呢?而且如果我去掉\n以后,txt文件就打不开了,这是为什么…… 展开
a=rand(500,1000);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
fprintf(fid,'%f\n',a);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',c);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',b);
fclose(fid);
这个程序里面的‘%4d\n’等里面的\n是换行的意思吗?如果是,为什么打开txt文件以后还是没有换行的效果呢?而且如果我去掉\n以后,txt文件就打不开了,这是为什么…… 展开
4个回答
展开全部
1、你是用记事本打开文件的吧?如果用其它编辑器(例如Word、UltraEdit)打开,是可以看到换行的效果的。
2、把
fid=fopen('data1.txt','w');
改成
fid=fopen('data1.txt','wt');
可以达到换行的效果。
你原来的写法是按照二进制模式打开文件的,后面那个建议的写法是按照文本模式打开。在Windows系统上,按文本模式打开文件的主要作用是,在写入换行符(\n)的时候,同时会插入一个回车符(\r\n),而如果是单独的换行符,记事本就只会显示成一个小的黑方块。
3、另一种改法是,打开文件的方式不变,但把 \n 改为 \r\n。显然这种方法更繁琐。
4、你说的“去掉\n以后,txt文件就打不开了”,应该不会。不过,也可能是行太长导致显示存在问题。
展开全部
clc;clear;
tic
%a=rand(500,1000);% 源程序中该矩阵太大,略微降低了,方法一样
a=rand(5,10);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
%% 输出矩阵a
[sa,sb]=size(a);
for i=1:sa
for j=1:sb
fprintf(fid,'%8.6f \n',a(i,j));
end
% If you plan to read the file with Microsoft® Notepad,
% use '\r\n' instead of '\n' to move to a new line.
fprintf(fid,'\r\n');
end
% 添加分隔符
for j=1:100
fprintf(fid,'%c\n','~');
end
fprintf(fid,'\r\n');
%% 输出矩阵c
fprintf(fid,'%4d\r\n',c);
% 添加分隔符
for j=1:100
fprintf(fid,'%c\n','~');
end
fprintf(fid,'\r\n');
%% 输出矩阵b
fprintf(fid,'%4d\r\n',b);
fclose(fid);
toc
tic
%a=rand(500,1000);% 源程序中该矩阵太大,略微降低了,方法一样
a=rand(5,10);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
%% 输出矩阵a
[sa,sb]=size(a);
for i=1:sa
for j=1:sb
fprintf(fid,'%8.6f \n',a(i,j));
end
% If you plan to read the file with Microsoft® Notepad,
% use '\r\n' instead of '\n' to move to a new line.
fprintf(fid,'\r\n');
end
% 添加分隔符
for j=1:100
fprintf(fid,'%c\n','~');
end
fprintf(fid,'\r\n');
%% 输出矩阵c
fprintf(fid,'%4d\r\n',c);
% 添加分隔符
for j=1:100
fprintf(fid,'%c\n','~');
end
fprintf(fid,'\r\n');
%% 输出矩阵b
fprintf(fid,'%4d\r\n',b);
fclose(fid);
toc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
clc,clear
a=rand(500,1000);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
fprintf(fid,'%f\t\n',a);
fprintf(fid,'%c\t\n','~');
fprintf(fid,'%4d\t\n',c);
fprintf(fid,'%c\t\n','~');
fprintf(fid,'%4d\t\n',b);
fclose(fid);
a=rand(500,1000);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
fprintf(fid,'%f\t\n',a);
fprintf(fid,'%c\t\n','~');
fprintf(fid,'%4d\t\n',c);
fprintf(fid,'%c\t\n','~');
fprintf(fid,'%4d\t\n',b);
fclose(fid);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是代表了换行,看到txt中的大黑点了吗?那个就是一个换行符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询