split string into 3 letter each
Show older comments
if have a
str = 'AGTCTGTCTTTG';
i wanted to split it into 3 letters each
AGT CTG TCT TTG
and replace
AGT with J
CTG with U
TCT with N
TTG with D
how to do it... please do reply....
i did as below
str = 'AGTCTGTCTTTG';
j = 1;
for k = 1: 3: length(str)
word(j) = str(k : k +3)
j = j+1;
end
but i get error as
??? Subscripted assignment dimension mismatch.
Error in ==> Untitled2 at 4
word(j) = str(k : k +3)
please do reply....
Accepted Answer
More Answers (2)
Jos (10584)
on 11 Dec 2013
Edited: Jos (10584)
on 11 Dec 2013
In your loop code, you want to store store a string of three elements into a spot with only 1 element "word(j)". This will not fit. A solution is to use a cell array of strings, using curly brackets:
str = 'AGTCTGTCTTTG';
j = 1;
for k = 1: 3: length(str)
word{j} = str(k : k +3)
j = j+1;
end
which can be replaced by:
word = strread(str,'%3s')
or
word = mat2cell(str,1,repmat(3,1,numel(str)/3))
To replace multiple values at once you could take a look at REPLACE function, which I made available through the File Exchange:
result = replace(word,{'AGT','CTG','TCT','TTG'},{'J','U','N','D'})
REPLACE is a user-friendly wrapper function using ismember http://www.mathworks.com/matlabcentral/fileexchange/10063-replace
1 Comment
Elysi Cochin
on 11 Dec 2013
Mohammed Alrajeb
on 19 Aug 2019
0 votes
hi every one.
my question is I have string of binary (00000100) 64 bits I want to take them over the number of each number is 8 bits and convert it to int8 amd use this number as input to my equation . how can i do that by function.
thanks
Categories
Find more on Cell Arrays 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!