- the file doesn't exist
- the file does exist but is not on the matlab path
- the file is protected
- the file is corrupt
Counting the number of a specific word in text.
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
pawlo392
el 13 de Mayo de 2019
Comentada: Guillaume
el 13 de Mayo de 2019
I want to create a program, tah will count specific words in text. I wrote this:
filename='File name : ';
word= 'Searched word : ';
A=input(filename,'s');
B=input(word,'s');
count=0;
fid=fopen(filename);
C=textscan(fid,'%/s');
for i=1:lenght(C{1})
words=char(C{1}(i));
words=strrep(words,'.','');
words=strrep(words,',','');
if (strcmp(words,word))
count=count+1;
end
end
But this program isn't working.
I got:
Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in count_word (line 7)
C=textscan(fid,'%/s'
3 comentarios
Guillaume
el 13 de Mayo de 2019
Well, yes as the error message says, %/s is not a valid format specifier. The / has no place there.
Respuesta aceptada
Jan
el 13 de Mayo de 2019
Editada: Jan
el 13 de Mayo de 2019
Use uigetfile instead of an fragile input command. But even then you should check the output of fopen:
[fid, msg] = fopen(filename);
assert(fid ~= -1, 'Cannot open file %s: %s', filename, msg);
Instead of using the cells created by textscan, the import as char vector is easier:
[filename, pathname] = uigetfile;
file = fullfile(filepath, filename);
word = input('Searched word : ', 's');
str = fileread(file);
str(ismember(str, '.,:!"''?')) = ' '; % Replace punctuation
str = [' ', str, ' '];
match = strfind(str, [' ', word, ' ']);
count = numel(match);
0 comentarios
Más respuestas (1)
Image Analyst
el 13 de Mayo de 2019
Instead of
A=input(filename,'s');
try this:
[folder, baseFileName] = uigetfile('*.*');
filename = fullfile(folder, baseFileName)
0 comentarios
Ver también
Categorías
Más información sobre Large Files and Big Data en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!