Help with splitting a string into a character array.
184 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Fady Samann
2020 年 9 月 5 日
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
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 件のコメント
Akash Yadav
2021 年 11 月 7 日
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?
Stephen23
2021 年 11 月 7 日
編集済み: Stephen23
2021 年 11 月 7 日
"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"]
out = num2cell(str)
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)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!