MATLAB Answers

0

How do I compare the elements of two vectors 1 by 1?

Tyler Johnson さんによって質問されました 2016 年 9 月 7 日
最新アクティビティ Star Strider
さんによって 回答されました 2016 年 9 月 7 日
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 件のコメント

サインイン to comment.

2 件の回答

Azzi Abdelmalek
回答者: Azzi Abdelmalek
2016 年 9 月 7 日
編集済み: Azzi Abdelmalek
2016 年 9 月 7 日

Use curly brackets
uset1{i} == uset2{i}
You can avoid for loop
out=find(cellfun(@(x,y) x==y,uset1,uset2))

  0 件のコメント

サインイン to comment.


Star Strider
回答者: Star Strider
2016 年 9 月 7 日

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 件のコメント

サインイン to comment.



Translated by