how to find common values in two matrix for particular column?
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Shubham Mohan Tatpalliwar
 il 24 Ott 2018
  
    
    
    
    
    Modificato: Bruno Luong
      
      
 il 25 Ott 2018
            if true
  % code
A=[0 1 1 0; 1 0 0 1; 1  1 0 0; 0 0 1 1]
B=[0 1 0 1; 1 0 1 0; 0 0 1 1; 1 1 0 0]
end
for 1st column of A and ALL columns of b
if we check
the expected answer is
1 0 2 1
these are the total number of instances they are matching
3 Commenti
  Bruno Luong
      
      
 il 24 Ott 2018
				Please put care on
- code formatting
- explanation
- formulation of synthetic question (Why give the whole A and ask just result that depends only on first column)
Risposta accettata
  Bruno Luong
      
      
 il 24 Ott 2018
        >> sum(A(:,1)+B==2)
ans =
     1     0     2     1
>>
9 Commenti
  Bruno Luong
      
      
 il 25 Ott 2018
				
      Modificato: Bruno Luong
      
      
 il 25 Ott 2018
  
			The reshape() just moves the 2nd dimension (column) of A to the 3rd dimension
So each origin column A(:,j) now can be addressed as A(:,:j).
The explanation for SUM(... & B) you already know, but now use in the context of auto-expansion. Excepted that the result now is of the size (1 x size(B,2) x size(A,2)): each number of common 1-values of B and A(:,j) is in a slide XX(1,:,j) before SQUEEZE is invoked.
The squeeze command removes the 1st singleton dimension, so XX(:,j) is common 1-values of B and A(:,j).
NOTE: You might transpose the result so each row corresponds to result of a column of A with you prefer.
Più risposte (1)
  Stephen23
      
      
 il 24 Ott 2018
        You don't need to use a loop:
>> sum(permute(A,[3,2,1])&permute(B,[2,3,1]),3)
ans =
  1   0   1   2
  0   1   2   1
  2   1   0   1
  1   2   1   0
Vedere anche
Categorie
				Scopri di più su Entering Commands in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



