how to find cell array intersection
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
i have cell array
y [1x4] [1x5] [1x6]
if have to find out common elements among
y{1}&y{2} y{1}& y{3} y{2}&y{3]
how can I use the intersect function to do it
1 Commento
James Tursa
il 12 Set 2017
Please provide a small example showing the input and desired output, giving a clear description of the complete rules involved for getting the output.
Risposte (1)
Walter Roberson
il 12 Set 2017
[I, J] = ndgrid(1:length(y));
result = arrayfun(@(tI,tJ) intersect(y{tI}, y{tJ}), I, J 'uniform', 0);
The result will be a symmetric cell array. Each pair would have been evaluated twice. Depending on the size of the array, avoiding the double evaluation could end up slower.
leny = length(y);
result = cell(leny-1, leny-1);
for J = 1 : leny - 1
for K = J+1 : leny
result{J,K-1} = intersect(y{J}, y{K});
end
end
This will give a cell array of results with the diagonal deleted and the entries below the diagonal left empty.
0 Commenti
Vedere anche
Categorie
Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!