| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-04-04 
				
				年龄: 48 
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			各位高手,小弟碰到一个问题总是解决不了,请大家帮忙。 
		
		
		
		
		
		
		
	现在有myfile001.dat,myfile002.dat,...,myfile100.dat一共100个文件,每个文件中的数据都是1行的,个数相等,我想将它们合并成一个数据文件,不知道怎么办? 先谢谢了。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2007-07-26 
				
				年龄: 41 
				
					帖子: 268
				 
				
				
				声望力: 25 ![]()  | 
	
	
	
		
		
			
			 
			
			可以用软件打开,然后复制粘贴即可; 
		
		
		
		
		
		
		
	如果用matlab打开的话,先打开文件,然后再合并,最后储存到新的文件中去,具体命令请楼主自己网上查一下。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-04-04 
				
				年龄: 48 
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			用软件打开,复制粘贴不太可行,因为文件太多了。 
		
		
		
		
		
		
		
	第二种方案应该是可以的,但是我不知道具体怎么做,我在网上找了很久都没有找到,还请楼上的兄弟帮帮忙吧,多谢了。 我已经能够实现把文件加载到matlab中,但是用load以后每一个文件对应出现了一个变量,我不知道怎么将它们合并在一起。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2007-07-26 
				
				年龄: 41 
				
					帖子: 268
				 
				
				
				声望力: 25 ![]()  | 
	
	
	
		
		
			
			 
			
			就是利用这些变量,然后用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 
				
				年龄: 41 
				
					帖子: 268
				 
				
				
				声望力: 25 ![]()  | 
	
	
	
		
		
			
			 
			
			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 
				
				年龄: 41 
				
					帖子: 268
				 
				
				
				声望力: 25 ![]()  | 
	
	
	
		
		
			
			 
			
			你是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 |