Creating a Function that acts as a counter for certain string

2 vues (au cours des 30 derniers jours)
Frandy
Frandy le 21 Sep 2011
Réponse apportée : BhaTTa le 19 Jan 2024
Okay, I am trying to create a function that reads a txt. file then for every certain string counts it as one until it reaches 10. Then the 10th string is taken and placed in an array. Can anyone help me?

Réponses (1)

BhaTTa
BhaTTa le 19 Jan 2024
Hey @Frandy , In MATLAB, you can create a function to read a text file, count occurrences of a specific string, and collect every 10th occurrence into an array. Here's an example function that does this:
function resultArray = collectEveryTenthOccurrence(filename, searchString)
% Initialize the counter and the result array
occurrences = 0;
resultArray = {};
% Open the text file for reading
fid = fopen(filename, 'rt');
if fid == -1
error('File cannot be opened: %s', filename);
end
% Read the file line by line
while ~feof(fid)
line = fgetl(fid);
words = strsplit(line); % Split the line into words
for i = 1:length(words)
word = words{i};
% Check if the word matches the search string
if strcmp(word, searchString)
occurrences = occurrences + 1;
% If the 10th occurrence, add to the result array
if mod(occurrences, 10) == 0
resultArray{end+1} = word;
end
end
end
end
% Close the file
fclose(fid);
end
To use this function, you would call it with the filename and the search string as arguments, like so:
collectedWords = collectEveryTenthOccurrence('sample.txt', 'example');
disp(collectedWords);
Hope it helps!

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by