Searching and Manipulating Cell Array
1 回表示 (過去 30 日間)
古いコメントを表示
I have a cell array A:
[3,2]
[2,4]
[4,5]
[2,5]
[6]
and cell array B:
[2,3,4]
[2,5]
[4,5,6]
In the array B I can see that [2,3,4] is made of union of [3,2] and [2,4] from A. [2,5] in B is made from union of only [2,5] from A. [4,5,6] in B is made of [4,5] and [6] in A.
So, I want to find the index of elements in A union of which make each array element of B. How do I do this?
Thanks guys
2 件のコメント
Azzi Abdelmalek
2012 年 10 月 19 日
what are the sizes of elments in B? can they be >3. The same question about A
採用された回答
Matt J
2012 年 10 月 19 日
編集済み: Matt J
2012 年 10 月 19 日
subsetmap=false(length(A), length(B));
for bb=1:length(B)
for aa=1:length(A)
subsetmap(aa,bb) = all(ismember(A{aa},B{bb}));
end
end
%this next line is unnecessary if logical indexing is sufficient
indices=arrayfun(@(col) find(subsetmap(:,col)),1:length(B),'uni',0);
3 件のコメント
Matt J
2012 年 10 月 19 日
By the way. My code doesn't check to see whether all B{i} can actually be formed from the union of some A{j}. It only works if this is already the case. I leave it to you to add the appropriate error checks.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!