Determining which values are found in all columns of an array

조회 수: 8 (최근 30일)
mashtine
mashtine 2014년 2월 25일
댓글: Jos (10584) 2014년 2월 25일
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
Jos (10584)
Jos (10584) 2014년 2월 25일
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?
mashtine
mashtine 2014년 2월 25일
Correct. Sorry for the semantics.

댓글을 달려면 로그인하십시오.

채택된 답변

Jos (10584)
Jos (10584) 2014년 2월 25일
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
Sagar Damle
Sagar Damle 2014년 2월 25일
Is there any use of "histc()" function?
Jos (10584)
Jos (10584) 2014년 2월 25일
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)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by