comparing elements of a cell array based on another cell array

2 ビュー (過去 30 日間)
lucksBi
lucksBi 2018 年 3 月 6 日
コメント済み: lucksBi 2018 年 3 月 6 日
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
  1 件のコメント
Jos (10584)
Jos (10584) 2018 年 3 月 6 日
What did you try yourself in pseudocode, using loops, for instance? Also see
help intersect

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2018 年 3 月 6 日
編集済み: Andrei Bobrov 2018 年 3 月 6 日
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 件のコメント
Andrei Bobrov
Andrei Bobrov 2018 年 3 月 6 日
I'm fixed my answer.
lucksBi
lucksBi 2018 年 3 月 6 日
yup i added 'unique'... Thanks alot.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by