How to split letters in a word into an array

 Accepted Answer

The string 'Hello' consists of single characters already:
str = 'Hello';
for k = 1:length(str)
disp(str(k))
end
So please explain the wanted type and dimensions of the output. 'H' 'E' 'L' 'L' 'O' is not clear enough.

4 Comments

I've had a similar question a few times - my goal is take a string that represents RNA, e.g. seq = 'ATTAGCTG', and then use the individual letters as the xticklabels in a figure. cellstr(seq) would return a cell containing the entire string. I believe what I'm looking for is a cell array of individual letters (no loops would be nice). Forgive me if I'm missing something simple.
Nevermind! I just noticed the transpose in the below comment. Learn something new every day.
Try num2cell, e.g. where W is your word (a 1xN character vector):
C = num2cell(W(:))
num2cell is the best solution. In case str is of class string
c = num2cell(char(str));
This works when str is a character array or a string.

Sign in to comment.

More Answers (2)

Tom
Tom on 1 Jul 2013
Edited: Tom on 1 Jul 2013
str = 'HELLO';
cellstr(str')'
If you want to extract the letters, simply extract in this way
>> str(1)
H
>> str(2)
E
>> str(3)
L
>>str(4)
L
>> str(5)
L
>> str(6)
O

Categories

Products

Tags

Asked:

MKN
on 1 Jul 2013

Edited:

on 26 May 2021

Community Treasure Hunt

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

Start Hunting!