我有一个单元格数组,每个数组都以字符串的形式存储一些数据(在我看来!!!)。我想以单个字符串的形式访问单元格的每个元素,而split是用单词表示的。
我拥有的单元格数组是单元格数组,并将每个元素作为使用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})

有人能解释我错在哪里吗任何帮助都将不胜感激。提前谢谢。

最佳答案

我猜你使用的是r2013之前的Matlab的一个version函数,尽管它们是泛型函数,应该在很久以前就添加了,strsplitstrjoin只是added in this most recent version
如果您只想将字符串拆分为单词,有几种方法可以避免访问strsplit如果您的所有空白都是简单的空格,您可以像这样使用strread

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

但是,textscan应该更健壮:
textscan(line,'%s')

使用regexp也应该是健壮的,但可能会较慢:
regexp(line,'\s+','split')

所有这些都以字符串(单词)的单元格数组形式返回输出,就像strsplittextscan的输出相对于其他输出进行转置。

关于arrays - strsplit:输入类型“char”的未定义函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18673969/

10-13 21:49