How to get all values existing in arrays/matrices?
조회 수: 50 (최근 30일)
이전 댓글 표시
Hello,
Let say I have a 3-by-2 array with random integer values. For example,
myArray = [98 56; 58 52; 100 56];
What I want to do is, I want to get all value in the array and its frequency and save it to another array like this,
listValue = [98 1; 56 2; 58 1; 52 1; 100 1];
Is there any function or a way to do it?
Thank you in advance.
채택된 답변
Andrei Bobrov
2020년 3월 24일
편집: Andrei Bobrov
2020년 3월 24일
[a,~,c] = unique(reshape(myArray',[],1),'stable');
out = [a, accumarray(c,1)];
or
out = varfun(@(x)x,array2table(myArray(:)),'GroupingVariables',1);
댓글 수: 2
Andrei Bobrov
2020년 3월 24일
편집: Andrei Bobrov
2020년 3월 24일
Yes or:
[a,~,c] = unique(myArray);
out = [a, accumarray(c,1)];
추가 답변 (2개)
Walter Roberson
2020년 3월 24일
See unique() and accumarray. Or unique and histc or histcounts (but be careful about the last value in histcounts). Or use a loop. Or use sparse(). Lots of ways.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!