>> W={ [1 2] , [1 3] , [1 4] , [2 3] , [2 4] }
W =
1×5 cell array
[1×2 double] [1×2 double] [1×2 double] [1×2 double] [1×2 double]
>> F={ [1 2] , [1 3] , [1 4] }
F =
1×3 cell array
[1×2 double] [1×2 double] [1×2 double]
I want to compare each value in F if it is exist in W?

 채택된 답변

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH 2019년 12월 11일

0 개 추천

answer=cell2mat(cellfun(@(x) any(cellfun(@(y) isequal(x,y),W)),F,'uni',false))

댓글 수: 6

Mira le
Mira le 2019년 12월 11일
Can I use loop for here to determine values that are in W, the result is not logical ,but the values are equal in W and F
with :
W={ [1 2] , [1 3] , [1 4] , [2 3] , [2 4] }
F={ [1 2] , [1 8] , [1 4] }
this will show [1 0 1] logical, because [1 8] not is member of W
Mira le
Mira le 2019년 12월 11일
C=[ ];
for i=1:length(W)
for j=1:length(F)
if F{j}==W{i}
C = [ C F{j} ];
end
end
end
it doesn't work
C=[ ];
for i=1:length(W)
for j=1:length(F)
if isequal(F{j},W{i})
C = [ C F{j} ];
end
end
end
Mira le
Mira le 2019년 12월 11일
Thank you
Simpler using indexing:
>> X = ismember(cat(1,F{:}),cat(1,W{:}),'rows');
>> cat(1,F{X})
ans =
1 2
1 4
>> cat(2,F{X})
ans =
1 2 1 4

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2017a

질문:

2019년 12월 11일

댓글:

2019년 12월 11일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by