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 commentaires

Guillaume
Guillaume le 8 Oct 2019
So? It's trivial to do with strfind in just one short line of code.
What effort, if any, have you made?
Cre'Shawn Dabney
Cre'Shawn Dabney le 8 Oct 2019
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);
Priyadharshini A.R
Priyadharshini A.R le 10 Mai 2021
Hello Dabney,
The loop must go on till n-m+1 so that it can traverse till last element in text

Connectez-vous pour commenter.

Réponses (2)

Jan
Jan le 10 Mai 2021

1 vote

t = 'tagtacagccagtagagttgattccaaggaagtccggctgttgtagagtagc';
tag = 'tag';
result = sum(strfind(lower(t), lower(tag)))
Alaster Meehan
Alaster Meehan le 8 Oct 2019

0 votes

strcmpi ignors case
Cheers Alaster

1 commentaire

Cre'Shawn Dabney
Cre'Shawn Dabney le 8 Oct 2019
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!

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by