Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]()
各位高手,小弟碰到一个问题总是解决不了,请大家帮忙。
现在有myfile001.dat,myfile002.dat,...,myfile100.dat一共100个文件,每个文件中的数据都是1行的,个数相等,我想将它们合并成一个数据文件,不知道怎么办? 先谢谢了。 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24 ![]() |
![]()
可以用软件打开,然后复制粘贴即可;
如果用matlab打开的话,先打开文件,然后再合并,最后储存到新的文件中去,具体命令请楼主自己网上查一下。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]()
用软件打开,复制粘贴不太可行,因为文件太多了。
第二种方案应该是可以的,但是我不知道具体怎么做,我在网上找了很久都没有找到,还请楼上的兄弟帮帮忙吧,多谢了。 我已经能够实现把文件加载到matlab中,但是用load以后每一个文件对应出现了一个变量,我不知道怎么将它们合并在一起。 |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24 ![]() |
![]()
就是利用这些变量,然后用cat命令,这个你看下help;
另外也可以如下: 变量:a=[1 2 3]; b=[1 2 3]; c=[1 2 3] 可以这样合并: d=[a b c];作为一个行向量 d=[a;b;c];作为一个矩阵 具体情况楼主自己把握…… |
![]() |
![]() |
![]() |
#5 | |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]() 引用:
clear clc num_file=10; for i = 1:num_file fout=sprintf('file%03d.dat',i); load(fout,'-ascii'); end sum_file=file001; for i=2:num_file fout=sprintf('file%03d',i); sum_file=[sum_file,fout]; end 结果在sum_file里,但运行的结果是“dfile002file003file004file005file006file007file008file009file010”,没有存放变量数值,不知道问题出现在什么地方?谢谢。 |
|
![]() |
![]() |
![]() |
#6 |
高级会员
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24 ![]() |
![]()
sprintf不能提取数据……
sprintf命令只是打印的命令,如果要导入文件名的话用uigetfile,或者别的方法,这样load才有效…… |
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]()
num_file=10;
for i = 1:num_file fout=sprintf('file%03d.dat',i); load(fout,'-ascii'); end 这一段是没有问题的,sprintf是转换了文件名,然后用load加载,运行结果得到10个变量,每一个变量以文件名命名,存储着各文件中的数据。uigetfile我也用过了,效果是一样的。 问题出在下面这一段,如何对10个变量进行合并? sum_file=file001; for i=2:num_file fout=sprintf('file%03d',i); sum_file=[sum_file,fout]; end 但是我不知道如何修改?多谢了。 |
![]() |
![]() |
![]() |
#8 |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]()
不知道谁有什么办法啊,我想了很久,都没想出来。
|
![]() |
![]() |
![]() |
#9 |
高级会员
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24 ![]() |
![]()
你是load数据进去了,但是没有对其赋予变量名称,你下面的合并相当于只是对文件名进行合并而已,而不是对数据进行合并,你试试如下代码:
sum_file=[]; for i=1:num_file fout=sprintf('file%03d',i); S=load(fout,'-ascii'); sum_file=[sum_file,S]; end 上面的代码可能有点错误,你调试一下,不过大致思路还是这样的…… |
![]() |
![]() |
![]() |
#10 |
初级会员
注册日期: 2008-04-04
年龄: 48
帖子: 7
声望力: 0 ![]() |
![]()
多谢了,我再试试看。
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
【求助】请问谁有matlab工具箱应用方面的书? | casc42 | MATLAB论坛 | 5 | 2008-09-22 16:53 |
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 | yijianmei | MATLAB论坛 | 1 | 2008-07-24 10:15 |
【求助】怎么去拟合这个曲线的函数 | ying081 | MATLAB论坛 | 3 | 2008-03-25 21:23 |
矩阵的定义 | resky | MATLAB论坛 | 1 | 2007-08-26 09:15 |
【求助】再问个关于Axes对象的问题,并谢谢昨天回答我问题的同学 | who_knows | MATLAB论坛 | 0 | 2007-08-15 01:34 |