| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2010-05-29 
				
				
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我想要实现的功能是,对列向量A中的每一个元素a,在n*2的矩阵B中,找出所有第1列的值等于a的行,然后求这些行的第2列的最大值 (若B中没有满足条件的行,则为0),生成一个和A一样大小的列向量C 
		
		
		
		
		
		
		
	举例而言,A=[1 2 3]',B=[1 2;3 4;1 3] 那么对A中的1,B中满足条件的是第1行和第3行,则第2列最大值max(2,3)=3;对A中2,B中没有满足条件的行,第2列最大值为0;对A中的3,B中满足条件的是第2行,第2列值最大值为4。于是结果是C=[3,0,4]' 我目前使用的是下面的代码: C=zeros(size(A,1),1); for i=1:size(A,1) if(~isempty(B(B(:,1)==A(i),2))) C(i)=max(B(B(:,1)==A(i),2)); end end 有没有什么办法将这个影响执行效率的for循环去掉,使用矩阵运算的方式达到我想要的结果  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |