split string into 3 letter each

45 次查看(过去 30 天)
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....

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-12-11
编辑:Azzi Abdelmalek 2013-12-11
str ='AGTCTGTCTTTG';
a=cellstr(reshape(str,3,[])')
What is the aim of the replacement ? you can create
v={'J','U','N','D'}
  2 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2013-12-11
If you have another string
s='AGT kdjd CTGer TCTTTG1'
str ='AGTCTGTCTTTG';
a=cellstr(reshape(str,3,[])')
v={'J','U','N','D'}
for k=1:numel(v)
s=strrep(s,a{k},v{k})
end
Mohammed Alrajeb
Mohammed Alrajeb 2019-8-19
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

请先登录,再进行评论。

更多回答(2 个)

Jos (10584)
Jos (10584) 2013-12-11
编辑:Jos (10584) 2013-12-11
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

Mohammed Alrajeb
Mohammed Alrajeb 2019-8-19
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

类别

Help CenterFile Exchange 中查找有关 Numeric Types 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by