# How to count number of times a number appears in column B based on column A

조회 수: 2 (최근 30일)
편집: Stephen23 . 2020년 4월 30일
Hi. I am wondering how I can make a table that shows how many times a number appears in a column based off another column.
For example,
If I have the dataset below.
Letters Coulmn B
A 1
B 2
A 2
A 1
C 1
D 3
I want to make an array or table that will have column that shows the following.
Letters Time #1 appears Time #2 appears Time #3 appears
A 2 1 0
B 0 1 0
C 1 0 0
D 1 0 1
Is this something that is possible? I can count the total, but am having trouble figuring out how to seperate based on criteria. The data is currently in a string array and a table. Thank you!

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

### 채택된 답변

Are Mjaavatten 2020년 4월 30일
letters = 'ABAACD';
numbers = [1,2,2,1,1,3];
uniqueletters = unique(letters);
uniquenumbers = unique(numbers);
n = length(uniqueletters);
m = length(uniquenumbers);
R = zeros(n,m);
for i = 1:n
fprintf('%3s',uniqueletters(i))
for j = 1:m
R(i,j) = sum(letters == uniqueletters(i) & numbers == uniquenumbers(j));
fprintf('%3d',R(i,j));
end
fprintf('\n')
end
##### 댓글 수: 3표시 이전 댓글 수: 2숨기기 이전 댓글 수: 2
Yes, this looks great too. Thank you very much, you were a tremendous help!

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

### 추가 답변 (1개)

Stephen23 2020년 4월 30일
편집: Stephen23 님. 2020년 4월 30일
Using a table makes the counting easy:
>> T = table();
>> T.letters = {'A';'B';'A';'A';'C';'D'};
>> T.columnB = [ 1; 2; 2; 1; 1; 3];
>> T.temp = T.columnB;
>> T.temp(:) = 1;
>> U = unstack(T,'temp','columnB')
U =
letters x1 x2 x3
_______ ___ ___ ___
'A' 2 1 NaN
'B' NaN 1 NaN
'C' 1 NaN NaN
'D' NaN NaN 1

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

### 카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

### Community Treasure Hunt

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

Start Hunting!

Translated by