声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1434|回复: 5

[编程技巧] 写文件时的格式问题

[复制链接]
发表于 2008-3-3 20:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有两个向量Time,Final_b
Time=[19810101    19810301    19810501    19810701    19810901    19811101    19820101    19820301]
Final_b=[0.7150    0.6604    0.6195    0.6123    0.6375    0.6490    0.6384    0.6899]

将这两个向量写到一个txt文档中,程序如下
fid=fopen('BVT.txt','w');
fprintf(fid,'%8.0f %6.4f\n',Time,Final_b);
fclose(fid);
type BVT.txt
得到的文件格式是这样的:
19810101 19810301.0000
19810501 19810701.0000
19810901 19811101.0000
19820101 19820301.0000
               1 0.6604
               1 0.6123
               1 0.6490
               1 0.6899
               1 0.6452
               1 0.6572
               1 0.5941
               1 0.5386
我将前面两个向量合并成一个
TimeB=[Time;Final_b];
将fprintf(fid,'%8.0f %6.4f\n',Time,Final_b);改为fprintf(fid,'%8.0f %6.4f\n',TimeB);
得到的仍是那样
应该 如何改,才能让这两个向量中的数据一一对应显示呢?
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-3-3 20:34 | 显示全部楼层
更正一下,开始时的向量均为列向量。
应该把它们都转为行向量。
但是转化为行向量之后,得到的是科学记数法形式,以至于Final_b中的值都显示为零
发表于 2008-3-3 20:34 | 显示全部楼层
原帖由 zdltwo 于 2008-3-3 20:23 发表
有两个向量Time,Final_b
Time=[19810101    19810301    19810501    19810701    19810901    19811101    19820101    19820301]
Final_b=[0.7150    0.6604    0.6195    0.6123    0.6375    0.6490    0.6384 ...

大家的编程能力不强,这个不能怪的,但是表达能力为何就这么弱呢?你的问题我看得不是太懂,如果我没有理解错你的意思,你应该是希望如下这样的,但是我会这样表达:

标题:如何把两个向量按照分量对应的格式写入文本文件呢?
内容:假设 a = [1,2,3,4], b = [-1,-2,-3,-4],执行以下代码后,得到的结果如下:

  1. 你的代码
复制代码
结果在txt文件中显示:
1 2
3 4
-1 -2
-3 -4

而我希望得到的结果是:
1 -1
2 -2
3 -3
4 -4

我尝试把程序修改成以下的代码,但是仍然不奏效,请问应该如何正确修改?谢谢!
  1. 你的修改代码
复制代码


这样表达是否清楚、简单、明了得多呢?

[ 本帖最后由 eight 于 2008-3-3 20:38 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-3-3 20:36 | 显示全部楼层
198012 0.8300
198102 0.7868
198104 0.6789
198106 0.6733
198108 0.7331
198110 0.7533
198112 0.6978
198202 0.7223
198204 0.7519
198206 0.7090
198208 0.6926
198210 0.6572
198212 0.6372
198302 0.6436
198304 0.6862
198306 0.6551
198308 0.6671
198310 0.6662
198312 0.7371
198402 0.8964
问题就是这样的文件是怎么写进去的?
fprintf语句应该怎么写?
发表于 2008-3-3 20:38 | 显示全部楼层
原帖由 zdltwo 于 2008-3-3 20:36 发表
198012 0.8300
198102 0.7868
198104 0.6789
198106 0.6733
198108 0.7331
198110 0.7533
198112 0.6978
198202 0.7223
198204 0.7519
198206 0.7090
198208 0.6926
198210 0.6572
198212 0.6372
19830 ...


你看你1楼的数据和你4楼的结果是否一致?
发表于 2008-3-14 17:50 | 显示全部楼层
把你的两个列向量Time,Final_b合成一个向量,然后转置一下,再读,就OK了

[ 本帖最后由 dearcleo 于 2008-3-14 17:52 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-5 03:30 , Processed in 0.057218 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表