strsplit: неопределенная функция для типа ввода 'char'
у меня есть массив ячеек , и каждый из них хранит некоторые данные в виде строки (как мне кажется!!!). Я хочу получить доступ к каждому элементу ячейки в виде отдельной строки, а split-в словах.
массив ячеек у меня есть массив ячеек и для доступа к каждому элементу в качестве ячейки я использую цикл for.
for i=1:20
line=newline{i}
end
он показывает мне все элементы в массиве. Теперь, поскольку строка является строкой, я применяю функцию 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})
кто-нибудь может объяснить мне, где я ошибаюсь? Любая помощь будет оценена. Спасибо заранее.
1 ответов
я предполагаю, что вы используете version
Matlab до R2013a. Несмотря на то, что они являются общими функциями и должны были быть добавлены веками назад,strsplit
и strjoin
только добавлено в последней версии.
есть несколько способов, которыми вы можете обойти, не имея доступа к strsplit
если все вы хотите сделать, это разбить строку на слова. Если все ваши пробелы являются простыми пробелами, вы можете просто использовать strread
такой:
strread(line,'%s','delimiter',' ')
, textscan
должно быть более надежным:
textscan(line,'%s')
используя regexp
также должен быть надежным, но, вероятно, будет медленнее:
regexp(line,'\s+','split')
все эти возвращаемые выходы в виде массивов ячеек строк (ваших слов), как и strsplit
. Вывод из textscan
транспонируется относительно других.