14

我有一个 <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})

谁能解释我哪里错了?任何帮助将不胜感激。提前致谢。

4

1 回答 1

22

我的猜测是您在versionR2013a 之前使用的是 Matlab。尽管它们是通用函数并且应该在很久以前添加,strsplit并且strjoin在此最新版本中添加。

strsplit如果您只想将字符串拆分为单词,则有几种方法可以解决无法访问的问题。如果你所有的空格都是简单的空格,你可以strread像这样使用:

strread(line,'%s','delimiter',' ')

但是,textscan应该更健壮:

textscan(line,'%s')

使用regexp也应该是健壮的,但可能会更慢:

regexp(line,'\s+','split')

所有这些都以字符串(你的话)的单元格数组形式返回输出,就像strsplit. 的输出textscan相对于其他输出被转置。

于 2013-09-07T18:05:06.247 回答