>> 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?

 Akzeptierte Antwort

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH am 11 Dez. 2019

0 Stimmen

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

6 Kommentare

Mira le
Mira le am 11 Dez. 2019
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 am 11 Dez. 2019
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 am 11 Dez. 2019
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by