Creating a Function that acts as a counter for certain string

2 views (last 30 days)
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?

Answers (1)

BhaTTa
BhaTTa on 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!

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!