comparing elements of a cell array based on another cell array

1 view (last 30 days)
hi
array1 = {[2,5];[1,3,4]}
array2= {[1,4],[1,5],5,4,[3,5,2]}
I need to perform a comparison. 1st element of array1 is [2,5] which is at position 1 in array1. so it will take 1st value in array2 [1,4] and compare it with 2nd and 5th value in array2 which are [1,5] and [3,5,2]. and in result it will take out the one which has at least one value in common with [1,4] as here we will get 2 because 2nd element [1,5] has '1' common with [1,4].
for 2nd element in array1 which is [1,3,4], it will take 2nd value of array2 and compare it with 1st,3rd and 4th value and [1,3] will be in result because 4th value which is [4] has nothing in common with [1,5].
so output will be:
ResultantantArray = {2,[1,3]}
i hope i have explained it well. kindly help on this.
Thanks in anticipation

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 6 Mar 2018
Edited: Andrei Bobrov on 6 Mar 2018
a1 = {[2,5];[1,3,4]};
a2= {[1,4],[1,5],5,4,[3,5,2]};
n = numel(a1);
out = cell(n,1);
nn = cellfun(@numel,a2);
for ii = 1:n
jj = a1{ii};
t = repelem(jj,nn(jj));
out{ii} = unique(t(ismember([a2{jj}],a2{ii})));
end
  3 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!