ifr*_*yed 0 string matlab split
我有一个文本,我想把它变成一个分开的字母数组.例如.:
'hello world' ? ['h','e','l','l','o',' ','w','o','r','l','d']
Run Code Online (Sandbox Code Playgroud)
谢谢.
ps MATLAB 2013a
在许多方面,字符串'hello world'是一系列分隔的字母.也许你正在寻找一个单元格数组,其中每个元素都是一个标量字符
x = mat2cell('hello world', 1, ones(11, 1))
x =
'h' 'e' 'l' 'l' 'o' ' ' 'w' 'o' 'r' 'l' 'd'
Run Code Online (Sandbox Code Playgroud)
你原来的问题没有多大意义; 字符串已经是一个字符数组.
建立在这里的其他人的假设(你想要一个单独的字符的单元格数组),有一个稍短的选择:
>> num2cell('hello world')
ans =
'h' 'e' 'l' 'l' 'o' ' ' 'w' 'o' 'r' 'l' 'd'
Run Code Online (Sandbox Code Playgroud)
其他方式:
>> regexp('hello world', '.', 'match')
ans =
'h' 'e' 'l' 'l' 'o' ' ' 'w' 'o' 'r' 'l' 'd'
Run Code Online (Sandbox Code Playgroud)
你也可以看看strsplit(在R2013a左右推出)
num2cell保留输入参数的类,如以下相关部分所示num2cell:
c = cell(size(a));
for i=1:numel(a)
c{i} = a(i);
end
Run Code Online (Sandbox Code Playgroud)
基础知识:在引擎盖下,字符串(==数组chars)本质上是一个8位整数数组,以不同的方式解释.键入'hello world'+0以查看我的意思; 你会得到整数数组中各个字符的UTF-8表值(好吧,doubles,但是很好).