MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

# split string into 3 letter each

Asked by Elysi Cochin on 11 Dec 2013
Latest activity Commented on by Elysi Cochin on 11 Dec 2013

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)
```

## Products

No products are associated with this question.

Answer by Azzi Abdelmalek on 11 Dec 2013
Edited by Azzi Abdelmalek on 11 Dec 2013
```str ='AGTCTGTCTTTG';
a=cellstr(reshape(str,3,[])')
```

What is the aim of the replacement ? you can create

```v={'J','U','N','D'}
```

## 1 Comment

Azzi Abdelmalek on 11 Dec 2013

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
```
Answer by Jos (10584) on 11 Dec 2013
Edited by 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

thank u all....