Baj*_*ajG 14 arrays string matlab string-split cell-array
我有一个<20x1>单元格数组,每个数组都以字符串的形式存储一些数据(因为它在我看来!!!).我想访问单元格的每个元素作为单个字符串,并且拆分是单词.
我所拥有的单元阵列是<20x1>单元阵列,并且作为我使用for循环的单元访问每个元素.
for i=1:20
line=newline{i}
end
Run Code Online (Sandbox Code Playgroud)
它向我展示了数组中的所有元素.现在因为line是一个字符串,所以我应用strsplit函数来检索字符串中的单词.
for i=1:20
words(i,:)=strsplit(line)
end
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误信息:
??? Undefined function or method 'strsplit' for input
arguments of type 'char'.
Error in ==> chk at 15
words=strsplit(newline{i})
Run Code Online (Sandbox Code Playgroud)
谁能解释我错在哪里?任何帮助将不胜感激.提前致谢.
hor*_*ler 22
我的猜测是你在versionR2013a之前使用的是Matlab.尽管它们是通用的功能,应该有蜜蜂添加年代久远,strsplit且strjoin只在这个最新版本中加入.
strsplit如果您想要做的就是将字符串拆分为单词,有几种方法可以解决无法访问的问题.如果您的所有空格都是简单空格,您可以strread像这样使用:
strread(line,'%s','delimiter',' ')
Run Code Online (Sandbox Code Playgroud)
但是,textscan应该更健壮:
textscan(line,'%s')
Run Code Online (Sandbox Code Playgroud)
使用regexp也应该是健壮的,但可能会更慢:
regexp(line,'\s+','split')
Run Code Online (Sandbox Code Playgroud)
所有这些都将输出作为字符串(您的单词)的单元格数组返回,就像strsplit.输出textscan相对于其他输出进行转置.