How to Count occurrences?

Given a text: ‘tagtacagccagtagagttgattccaaggaagtccggctgttgtagagtagc’ and a three-character target pattern (for example: ‘TAG’ ), your program should identify all target patterns in the text and output the number of occurrences of the target pattern.
Sample output Text:tagtacagccagtagagttgattccaaggaagtccggctgttgtagagtagctag
Target:TAG
Number of TAG:5
Target:tag
Number of tag:5
Target:GTa
Number of cag:2
Target:exit Program terminated!

3 Comments

So? It's trivial to do with strfind in just one short line of code.
What effort, if any, have you made?
Hello, I am confused about the looping and case sensitivity part. In other words I can perform the first output which is
Text:tagtacagccagtagagttgattccaaggaagtccggctgttgtagagtagctag
Target:TAG
Number of TAG:5
But I cant seem to produce the rest of the outputs. This is what I used to produce the first output:
clear;clc;
text=input('Enter text:','s');
pattern=input('Target:','s');
count=0;
n=size(text,2);
m=size(pattern,2);
for i=1:n-m
%sunstring find
temp=text(i:i+m-1);
%comapre
if(strcmp(temp,pattern))
count=count+1;
end
end
fprintf('Pattern count: %d\n',count);
Hello Dabney,
The loop must go on till n-m+1 so that it can traverse till last element in text

Sign in to comment.

Answers (2)

Jan
Jan on 10 May 2021
t = 'tagtacagccagtagagttgattccaaggaagtccggctgttgtagagtagc';
tag = 'tag';
result = sum(strfind(lower(t), lower(tag)))
Alaster Meehan
Alaster Meehan on 8 Oct 2019

0 votes

strcmpi ignors case
Cheers Alaster

1 Comment

Thank you for your answer. I am still confused on how to write this code. Could you possibly demonstrate how? If not thank you so much for your participation!

Sign in to comment.

Asked:

on 8 Oct 2019

Answered:

Jan
on 10 May 2021

Community Treasure Hunt

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

Start Hunting!