# How to count the number of each character from a text file (and the frequency of it)?

26 visualizzazioni (ultimi 30 giorni)
Esther Kis il 28 Mar 2016
Commentato: Amit Dubey il 2 Giu 2020
Create a function that takes a text file as input and returns a vector of size 26 with the frequency in percent of each character a, b, . . . z (not sensitive to case.) The frequency must be computed as the number of occurences divided by the total number of characters from a to z that occur, multiplied by one hundred. All other letters such as ø and ä as well as all symbols must be ignored.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Azzi Abdelmalek il 28 Mar 2016
s=importdata('file.txt')
str=upper(s(:))
str=[str{:}]
AZ='A':'Z'
long=sum(ismember(str,AZ));
for k=1:numel(AZ)
freq(k,1)=100*sum(ismember(str,AZ(k)))/long
end
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Più risposte (3)

Mounic Kumar il 25 Giu 2019
function charnum = char_counter(fname,A)
fid = fopen(fname,'rt');
if fid < 0
charnum = -1;
return
end
if fid >0 && ischar(A)
k=0;
end
charnum = k;
else
charnum = -1;
end
fclose(fid);
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Amit Dubey il 15 Mag 2020
Modificato: Amit Dubey il 2 Giu 2020
function n=char_counter(fname,character)
fid=fopen(fname,'rt');
if fid<0
n=-1;
return;
elseif ~ischar(character)
n=-1;
return;
end
end
c=0;
ol=fgets(fid);
while ischar(ol)
c=c+count(ol,character);
ol=fgets(fid);
end
n=c;
fclose(fid);
##### 2 CommentiMostra NessunoNascondi Nessuno
Walter Roberson il 15 Mag 2020
If the file open works but ischar(character) fails, then you leave the file open when you return.
Amit Dubey il 2 Giu 2020
Thank you, just made required modifications

Accedi per commentare.

Priyamvada Shankar il 23 Mar 2019
Modificato: Priyamvada Shankar il 23 Mar 2019
Please Help me with this ..function called char_counter that counts the number of a certain character in a text file. The function takes two input arguments, fname, a char vector of the filename and character, the char it counts in the file. The function returns charnum, the number of characters found. If the file is not found or character is not a valid char, the function return -1. As an example, consider the following run. The file "simple.txt" contains a single line: "This file should have exactly three a-s..."
##### 8 CommentiMostra 6 commenti meno recentiNascondi 6 commenti meno recenti
Walter Roberson il 26 Mar 2019
Why are you skipping down to the last line of the file?
Walter Roberson il 26 Mar 2019
note: your function returns -1 if the character is valid but not found. Your function should only be returning -1 if the file is not found or if the input is not a valid scalar character.

Accedi per commentare.

### Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by