galinwa 发表于 2008-4-19 21:43

如何把数据写入文件后保持列数不变

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

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


谢谢

[ 本帖最后由 eight 于 2008-4-21 20:22 编辑 ]

ch_j1985 发表于 2008-4-19 21:48

把data.txt文件一起帖出来,可以吗?

galinwa 发表于 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 485135485225
485315 485405485495
485585 485675485765
485855 485945486035
486125 486215486305
486395 486485486575
486665 486755486845
486935 487025487115
487205 487295487385
487475 487565487655(坐标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)

ch_j1985 发表于 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

galinwa 发表于 2008-4-20 16:30

回复 4楼 的帖子

一个坐标对应一个分类结果,如下
C                      X                      Y               
0                      485045          3834935
1                      485135          3834935
。。。。。。
输出的data.txt将分类结果先排列完,之后排列X坐标,最后是Y坐标。可我需要的是如上面所列出的样子。在MATLAB里面已经得到如上的文件,只是需要把它保存为data.txt格式的时候保持以上的样子不变

ch_j1985 发表于 2008-4-20 17:41

试试这个,不行的话,自己根据这个再修改吧
代码:
A=;
B=[485045 485135485225;
    485315 485405485495;
    485585 485675485765];
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 编辑 ]

galinwa 发表于 2008-4-20 18:27

回复 6楼 的帖子

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

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

ch_j1985 发表于 2008-4-21 15:56

原帖由 galinwa 于 2008-4-21 10:33 发表 http://www.chinavib.com/forum/images/common/back.gif
麻烦,请问,怎么在你提供的方法中,怎么加入分隔符“,”

是这个吗?
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,

eight 发表于 2008-4-21 20:21

原帖由 galinwa 于 2008-4-21 10:33 发表 http://www.chinavib.com/forum/images/common/back.gif
麻烦,请问,怎么在你提供的方法中,怎么加入分隔符“,” 自己多动手尝试: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 编辑 ]

ulu 发表于 2008-4-21 20:30

用csvwrite可以吧

这个函数可保证矩阵的原样输出,有“,”,很好用

arlston 发表于 2008-11-25 22:04

不错,,,大家都很热心
页: [1]
查看完整版本: 如何把数据写入文件后保持列数不变