关于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文件就打不开了,这是为什么……
展开
 我来答
tianxiawulang
推荐于2018-04-04 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2656万
展开全部

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文件就打不开了”,应该不会。不过,也可能是行太长导致显示存在问题。

百度网友3a512da
2014-08-04 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:46.1万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数码答疑

2015-11-04 · 解答日常生活中的数码问题
数码答疑
采纳数:8805 获赞数:18622

向TA提问 私信TA
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞跃梦想华
2014-08-04 · TA获得超过333个赞
知道小有建树答主
回答量:388
采纳率:89%
帮助的人:108万
展开全部
是代表了换行,看到txt中的大黑点了吗?那个就是一个换行符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式