Find matching entries in cell array
9 ビュー (過去 30 日間)
古いコメントを表示
If I have a cell array full of character arrays, I want to return a cell array of all the items that are common between all columns. For example:
Sample data:
example{1,1}{1,1} = 'a'
example{1,1}{2,1} = 'b'
example{1,1}{3,1} = 'c'
example{1,2}{1,1} = 'a'
example{1,2}{2,1} = 'b'
example{1,3}{1,1} = 'x'
example{1,3}{2,1} = 'b'
example{1,3}{3,1} = 'a'
I then want to return a Nx1 cell array with the values that match between all items, so it would return [a,b] - (order is not important).
The example data must be assumed to be any size.
I have tried strcmp and a few other methods but cant get my head around it! Any help appreciated.
2 件のコメント
John
2017 年 7 月 17 日
In the example you provided, "a" and "b" are not common to all. example{1,4} does not contain those values.
Can you clarify what you are trying to achieve?
採用された回答
Walter Roberson
2017 年 7 月 17 日
result = example{1,1};
for K = 2 : numel(example)
result = intersect(result, example{K}, 'rows');
end
At the end, only the items in common with everything will be left. But as John points out, that will be empty.
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!