Determining which values are found in all columns of an array
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I have data in an array (1x35) each col have multiple rows of varying number. I would like to go through each of the 35 cols in the array and see which values occur throughout all or at least 30. Any idea how I would do this?
Thanks!
2 Commenti
Jos (10584)
il 25 Feb 2014
This means you have a cell array of size 1-by-35, where each cell holds a column vector (1 column) with a varying number of elements?
Risposta accettata
Jos (10584)
il 25 Feb 2014
Assuming you matrix is a cell array:
% create some example data
CVFun = @(n) ceil(10*rand(n,1)) ; % helper function to create some data
C = {CVFun(10) CVFun(4) CVFun(7) CVFun(9) CVFun(10) CVFun(12)} % a 1-by-6 cell array
% engine
unVal = unique(cat(1,C{:})) ; % get all unique values in C
isPresent = cellfun(@(x) ismember(unVal,x),C,'un',0)
isPresent = cat(2,isPresent{:}) ;
Count = sum(isPresent,2) % count in how many columns a unique value is found
[MaxCount, idx] = max(Count)
[unVal(idx) MaxCount] % the (most likely) result
4 Commenti
Jos (10584)
il 25 Feb 2014
in what sense? You can use histc to count how many times elements occur
A = [1 3 5 2 4 3 4 4 1 6 7 5 6]
unA = unique(A)
N = histc(A,unA)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Shifting and Sorting 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!