Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: [合集]如何在纯文本内文件内写入换行符?
发信站: 哈工大紫丁香 (2004年02月23日14:21:49 星期一), 站内信件
────────────────────────────────────────
hanker (追梦人) 于 2004年02月20日10:41:50 星期五 说道:
现在想用fwrite将一些数据参数写成报告形式的文本文件
,该如何操作呢?一般都是写成一大行,这样看起来非常
不美观~~即写成多行的文本文件。
多谢了!
────────────────────────────────────────
Ustcer (山城棒棒儿军) 于 2004年02月20日11:05:56 星期五 说道:
跟c中差不多
────────────────────────────────────────
hanker (追梦人) 于 2004年02月20日11:15:06 星期五 说道:
具体怎么操作呢?现在要用,方便一点,请提示一下。多谢了!
────────────────────────────────────────
Ustcer (山城棒棒儿军) 于 2004年02月20日13:10:34 星期五 说道:
sorry
你用的fwrite,我不知道怎么写
我以往都是用fprintf写文件的
譬如:
fid = fopen('pig.txt','wt+');
a=[1 2 3;4 5 6];
for i=1:2
for j=1:3
fprintf(fid,'%i ',a(i,j));
fprintf(fid,':');
end
fprintf(fid,'\n');
end
fclose(fid);
发信站: BBS 水木清华站 (Wed Apr 12 12:28:14 2000)
首先用fopen打开文件.
fid=fopen(filename,permission)
permission指打开文件的模式,可以为:
'r': 打开文件读;
'r+':打开文件读写;
'w':删除已经存在的文件内容或建立一个新文件,并打开文件写;
'w+':删除已经存在的文件内容或建立一个新文件,并打开文件读写;
'a':建立并打一个新文件或打开一个已经存在的文件写,在文件的结尾处添加内容;
'a+':建立并打一个新文件或打开一个已经存在的文件读写,在文件的结尾处添加内容;
读写有格式文件的函数是fscanf 和fprintf.
1. fscanf:
fscanf的调用格式为:
[A,count]=fscanf(fid,format,size): 从文件指针fid指向的文件中读取数据并
返回给矩阵A, count为成功读取数据的个数.
参数size有以下几种取值方式:
n: 读n个数据到一个列向量.
inf:一直读到文件结尾,读出的数据放到一个列向量中.
[m,n]:读出的数据等于一个mxn的矩阵的元素总数,读出的数据按列的顺序
填充矩阵,其中n可以是inf,表示读到文件结尾,而m不可以.
参数format指定读取数据格式,format与C语言的格式字符串基本相同.
有%c,%d,%e,%f,%g,%i,%o,%s,%u,%x等.
一个例子,是我的程序:
fid = fopen('edge_result.dat','r')
[nodenumber, count] =fscanf(fid, '%d', 1)
[gridnumber, count] =fscanf(fid, '%d', 1)
[temp,count] =fscanf(fid, '%g', [4,inf]);
x=temp(1:2,:);
y=temp(3:4,:);
plot(x,y,'-b');
fclose(fid)
它从edge_result.dat中读取两个整数,分别赋给nodenumber, gridnumber.
再将其他所有数据读出来,按列优先的顺序赋给4*n的矩阵temp
其他就是给x,y赋值, 画图了.
2. fprintf:
fprintf的调用格式为:
count=fprintf(fid,format,A,...): 把矩阵A的数据按照format指定的格式写到
文件指针fid指向的文件中.成功写入文件字节数返回给count.
fprintf的format可以包括转义字符,如:\b,\f,\n,\r,\t,\\,%%等,与C相似.
────────────────────────────────────────
hanker (追梦人) 于 2004年02月20日14:50:48 星期五 说道:
多谢!找到问题的所在了,格式参数中缺少了一个跳格‘t’;否则只是加入了换行的字符
,在形式上还是不分行的。
--
~~
*~-~*_hanker
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 219.223.240.227]
────────────────────────────────────────
motor (大虎) 于 2004年02月20日18:31:57 星期五 说道:
有个简单的办法,先在matlab中用reshape函数把数据矩阵变成各窄条形,然后用save
***.dat *** -ascii 存成文件。
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.474毫秒