我有< 20x1>单元格数组,每个单元格都以字符串的形式存储一些数据(因为它在我看来!!!)。我想以单个字符串的形式访问单元格的每个元素,并且以单词形式分割。
我具有的单元阵列是< 20x1>单元格数组以及作为单元格访问每个元素我正在使用for循环。
for i=1:20
line=newline{i}
end
它显示了数组中的所有元素。既然line是一个字符串,我应用strsplit函数来检索字符串中的单词。
for i=1:20
words(i,:)=strsplit(line)
end
这给了我一条错误信息:
??? Undefined function or method 'strsplit' for input
arguments of type 'char'.
Error in ==> chk at 15
words=strsplit(newline{i})
谁能解释我错在哪里?任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:22)
我的猜测是你在R2013a之前使用的是version
Matlab。尽管它们是通用函数并且应该在很久以前添加,但strsplit
和strjoin
仅为added in this most recent version。
如果您想要做的就是将字符串拆分为单词,有几种方法可以解决无法访问strsplit
的问题。如果你的所有空格都是简单的空格,你可以像这样使用strread
:
strread(line,'%s','delimiter',' ')
但是,textscan
应该更强大:
textscan(line,'%s')
使用regexp
也应该很健壮,但可能会更慢:
regexp(line,'\s+','split')
所有这些都将输出作为字符串(您的单词)的单元格数组返回,就像strsplit
一样。 textscan
的输出相对于其他输出进行了转换。