How do I compare the elements of two vectors 1 by 1?
    14 views (last 30 days)
  
       Show older comments
    
I am trying to manually write a set intersection function in matlab. I need to compare all of the elements of each vector. Right now for the comparison I have an for loop with an if statement inside:
for i = 1:length(uset1)
  if uset1(i) == uset2(i)   
     result = i;
uset1 and uset2 are single row vectors where no elements are duplicated. Whenever I try to run I get an error saying that '==' is an undefined operator for input arguments of type 'cell'. Is there another way to compare individual elements of two vectors?
0 Comments
Answers (2)
  Azzi Abdelmalek
      
      
 on 7 Sep 2016
        
      Edited: Azzi Abdelmalek
      
      
 on 7 Sep 2016
  
      Use curly brackets
uset1{i} == uset2{i}
You can avoid for loop
out=find(cellfun(@(x,y) x==y,uset1,uset2))
0 Comments
  Star Strider
      
      
 on 7 Sep 2016
        Another approach:
uset1 = {randi(9, 1, 20)};                                  % Create Data
uset2 = {randi(9, 1, 20)};                                  % Create Data
LV = cellfun(@ne, uset1, uset2, 'Uni',0);                   % Logical Vector
out = find(~LV{:});                                         % Indices Of Equal Elements
0 Comments
See Also
Categories
				Find more on Matrices and Arrays 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!

