MATLAB Answers

Count the number of times a word appears?

조회 수: 4(최근 30일)
Beth Lewis
Beth Lewis 2021년 8월 17일
답변: Simon Chan 2021년 8월 17일
So I have a mixed text and numerical document that is located in a table. In column A it describes text values (fish species surveyed), where a specific text can be repeated multiple times along the rows.
In column B, it describes a numerical value of how many times that fish was surveyed in that particular instance. But the fish can be seen again, with different numeric values next to it.
For example:
A: B:
fishX 3
fishY 3
fishZ 2
fishX 2
fishX 2
So what I want to do is count the number of times Fish X, Y, Z has been surveyed overall, which I am finding difficult because they are two different mediums, across mulitple rows. It would require the code being able to go FishX=3+2+2.
This is all to count the most common Fish sighted in a survey.
Hope that makes sense


Yazan 2021년 8월 17일
A = {'fishX', 'fishY', 'fishZ', 'fishX', 'fishX'}';
B = [3 3 2 2 2]';
T = table(A, B);
groupsummary(T, "A", 'sum')
ans = 3×3 table
A GroupCount sum_B _________ __________ _____ {'fishX'} 3 7 {'fishY'} 1 3 {'fishZ'} 1 2

Simon Chan
Simon Chan 2021년 8월 17일
Use function readtable and groupsummary:
clear; clc;
A = readtable('demo.txt');
G = groupsummary(A,'A','sum');
A new column is generated which is the result.
G =
3×3 table
A GroupCount sum_B
_________ __________ _____
{'fishX'} 3 7
{'fishY'} 1 3
{'fishZ'} 1 2

KSSV 2021년 8월 17일
A = {'fishX' ;
'fishY' ;
'fishZ' ;
'fishX' ;
'fishX' } ;
B = [3 ; 3 ; 2 ; 2 ; 2]
idx = strcmp(A,'fishX') ;
iwant = sum(B(idx))

Community Treasure Hunt

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

Start Hunting!

Translated by