声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1887|回复: 10

[综合讨论] 如何把数据写入文件后保持列数不变

[复制链接]
发表于 2008-4-19 21:43 | 显示全部楼层 |阅读模式

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

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

x
本人用fprintf命令将一个矩阵保存为TXT文件,命令如下
fid = fopen('data.txt','wt');
fprintf(fid,'%1.0f %6.0f %7.0f\n',d);
输出的文件把第一列数据排成N*3的矩阵以后,再把第二列数据排成N*3的矩阵,然后是第三列数据,不知能否保持原来的三列数据不变

另外,输出的format是0.0000000e+000  4.8504500e+005  3.8349350e+006
能否用什么方法直接显示0       485045      3834935


谢谢

[ 本帖最后由 eight 于 2008-4-21 20:22 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-19 21:48 | 显示全部楼层
把data.txt文件一起帖出来,可以吗?
 楼主| 发表于 2008-4-20 09:43 | 显示全部楼层

回复 2楼 的帖子

0      0       0
0      1       0
0      0       0
1      1       1
1      1       1
1      1       1
0      1       0
0      0       0
0      0       0
0      1       0
0      0       0
0      0       0
1      0       0
0      0       0                      (分类结果)
......
485045 485135  485225
485315 485405  485495
485585 485675  485765
485855 485945  486035
486125 486215  486305
486395 486485  486575
486665 486755  486845
486935 487025  487115
487205 487295  487385
487475 487565  487655(坐标X)
......
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935
3834935 3834935 3834935(坐标Y)
发表于 2008-4-20 15:01 | 显示全部楼层
是这样吗?
0 0 0 485045 485135 485225 3834935 3834935 3834935
0 1 0 485315 485405 485495 3834935 3834935 3834935
0 0 0 485585 485675 485765 3834935 3834935 3834935

Mydata.txt

156 Bytes, 下载次数: 11

 楼主| 发表于 2008-4-20 16:30 | 显示全部楼层

回复 4楼 的帖子

一个坐标对应一个分类结果,如下
C                      X                      Y               
0                      485045          3834935
1                      485135          3834935
。。。。。。
输出的data.txt将分类结果先排列完,之后排列X坐标,最后是Y坐标。可我需要的是如上面所列出的样子。在MATLAB里面已经得到如上的文件,只是需要把它保存为data.txt格式的时候保持以上的样子不变
发表于 2008-4-20 17:41 | 显示全部楼层
试试这个,不行的话,自己根据这个再修改吧
代码:
A=[0,0,0;0,1,0;0,0,0];
B=[485045 485135  485225;
    485315 485405  485495;
    485585 485675  485765];
C=[3834935 3834935 3834935;
    3834935 3834935 3834935;
    3834935 3834935 3834935];
fid=fopen('Mydata.txt','wt');
for i=1:3
    fprintf(fid,'%1.0f   %6.0f   %7.0f   \n',A(i,1),B(i,1),C(i,1));
    fprintf(fid,'%1.0f   %6.0f   %7.0f   \n',A(i,2),B(i,2),C(i,2));
    fprintf(fid,'%1.0f   %6.0f   %7.0f   \n',A(i,3),B(i,3),C(i,3));
end
fclose(fid);

[ 本帖最后由 ChaChing 于 2009-12-10 18:32 编辑 ]

Mydata.txt

225 Bytes, 下载次数: 6

评分

1

查看全部评分

 楼主| 发表于 2008-4-20 18:27 | 显示全部楼层

回复 6楼 的帖子

谢谢,我试试看
麻烦,请问,怎么在你提供的方法中,怎么加入分隔符“,”

[ 本帖最后由 ChaChing 于 2009-12-10 18:31 编辑 ]
发表于 2008-4-21 15:56 | 显示全部楼层


是这个吗?
0,   485045,   3834935,   
0,   485135,   3834935,   
0,   485225,   3834935,   
0,   485315,   3834935,   
1,   485405,   3834935,   
0,   485495,   3834935,   
0,   485585,   3834935,   
0,   485675,   3834935,   
0,   485765,   3834935,
发表于 2008-4-21 20:21 | 显示全部楼层
原帖由 galinwa 于 2008-4-21 10:33 发表
麻烦,请问,怎么在你提供的方法中,怎么加入分隔符“,”
自己多动手尝试:fprintf(fid,'%1.0f , %6.0f , %7.0f   \n',A(i,1),B(i,1),C(i,1));

另外,下次请清楚描述你的问题,我看了几次才看懂你在1楼所遇到的困难

[ 本帖最后由 eight 于 2008-4-21 20:24 编辑 ]
发表于 2008-4-21 20:30 | 显示全部楼层

用csvwrite可以吧

这个函数可保证矩阵的原样输出,有“,”,很好用
发表于 2008-11-25 22:04 | 显示全部楼层
不错,,,大家都很热心
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-6-29 00:32 , Processed in 0.059849 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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