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毫秒