Find values and positions of a matrix referring to another matrix
    4 views (last 30 days)
  
       Show older comments
    
    Ricardo Gutierrez
 on 1 Oct 2019
  
    
    
    
    
    Commented: Ricardo Gutierrez
 on 1 Oct 2019
            Hi !!! Good day.
I hope you can help me
I have two matrices
A = [2 4 7];
B = [3 4 6
       1 5 7
       2 8 9
       9 2 4];
From the first element of matrix A find position and value in the first column of matrix B
From the second element of matrix A find position and value in the second column of matrix B
From the third element of matrix A find position and value in the third column of matrix B
In the end I will have two vectors;
one with the values 2, 4, 7 and the other with the positions 3, 1, 2
In reality, matrix A is 1 X 18 and matrix B has 720 X 18
Thank you very much for your help.
Regards.
0 Comments
Accepted Answer
  David Hill
      
      
 on 1 Oct 2019
        for i=1:length(A)
C(i)=find(B(:,i)==A(i),1);%will there always be only one match?
end
More Answers (1)
  Stephen23
      
      
 on 1 Oct 2019
        
      Edited: Stephen23
      
      
 on 1 Oct 2019
  
      This is MATLAB, so you should learn how to efficiently solve tasks like this without loops:
>> A = [2,4,7];
>> B = [3,4,6;1,5,7;2,8,9;9,2,4];
>> X = bsxfun(@eq,A,B); % or for >=R2016b simply X = A==B;
>> V = B(X)
V =
   2
   4
   7
>> [R,~] = find(X)
R =
   3
   1
   2
See Also
Categories
				Find more on Matrix Indexing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

