| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-02-01 
				
				年龄: 38 
				
					帖子: 1
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			各位牛人,我今天用matlab的时候,对以前的一个程序进行了修改,结果发觉运行速度慢了N倍,而我只改动了2行代码,如下: 
		
		
		
		
		
		
		
	原来代码: A=sparse((randperm(K))'<=dgree); B(:,column)=A; 更改后: A=sparse(randperm(K)<=dgree); B(row,  =A;A和B是两个矩阵,其中A是4000*4000的方阵,B是个1*4000的向量,dgree是个数,目的是随机的在A中产生dgree个1。然后我发觉对B赋值,原来的对列赋值效率比下面对行赋值的效率高很多。当我采用循环的时候,发觉一个只要几秒可以完成,另一个却要几千秒。不知道是怎么回事,希望大家可以帮我解答一下。谢谢各位了。  
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |