Help with splitting a string into a character array.

Let's say I have a string s='Potato'.
How would I split that up into an array so that it looks like t='P, o, t, a, t, o'?
I'm currently doing it like this:
%%Choose word
word=datasample(wordbank,1)
%identify length of word
wordlength=strlength(word)
sol = split(word,"")
The only problem with doing it this way is that there are two blank spots and the beginning and end of the character array. It looks like this when outputted:
"" "P" "o" "t" "a" "t" "o" ""
How can I split it so that the blank values at the beginning and end aren't there?

댓글 수: 1

the string is already an array of char. So, s(1) is 'P'. However, if you want to remove the blanks, you have to do it by a 'for' loop and test for blanks with 'if' condition.
s=' Potato ';
c=1;
for i=1:length(s)
if s(i)~=' '
new_s(c)=s(i);
c=c+1;
end
end

댓글을 달려면 로그인하십시오.

 채택된 답변

Mischa Kim
Mischa Kim 2017년 11월 5일
편집: Mischa Kim 2017년 11월 5일
You could use
s = 'Potato';
t = num2cell(s)
t =
1×6 cell array
{'P'} {'o'} {'t'} {'a'} {'t'} {'o'}

댓글 수: 3

Thank you!
isn't num2cell or num2string is used on a number array to convert it to string or cell array? what explains the working of num2cell on a string?
"isn't num2cell or num2string is used on a number array to convert it to string or cell array?"
No, NUM2CELL splits the elements of the input array into cells of a cell array. It does not "convert" anything: all of the original data still exists with its original class, just (in general) in more but smaller (e.g. scalar) arrays than beforehand.
"what explains the working of num2cell on a string?"
NUM2CELL operates the same regardless of the input class (this is clearly documented in the NUM2CELL documentation, where it lists all of the permitted input classes):
str = ["hello","world"]
str = 1×2 string array
"hello" "world"
out = num2cell(str)
out = 1×2 cell array
{["hello"]} {["world"]}
Storing scalar strings in a cell array should be avoided.
PS: the name is likely a relic of when MATLAB was young and only supported numeric arrays.
PPS: NUM2STRING is not a MATLAB function:
num2string(pi)
Unrecognized function or variable 'num2string'.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Cell Arrays에 대해 자세히 알아보기

태그

질문:

2017년 11월 5일

편집:

2021년 11월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by