Determining which values are found in all columns of an array
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
mashtine
am 25 Feb. 2014
Kommentiert: Jos (10584)
am 25 Feb. 2014
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 Kommentare
Jos (10584)
am 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?
Akzeptierte Antwort
Jos (10584)
am 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 Kommentare
Jos (10584)
am 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)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!