matlab将句子分成单词

时间:2013-10-30 21:36:59

标签: arrays matlab char

我是新的matlab和ım试图从matlab gui获取输入,这将由用户输入并将该句子分成单词但我需要将它们作为字母,因为我使用机器人来编写它们。这些信件将发送给这些机器人。我使用两个机器人,例如当我在文本中写'lou reed'时,按下按钮matlab功能会将这两个单词保存到不同的char数组中,这样ı可以有这样的字母c(i)并将它们发送到处理。到目前为止ı写了这些但是ım卡住了。

c = char(get(handles.edit1,'String'));
int count1;
int count2;
char word1;
char space=" ";

for i=1:length(c)
    int t = isequal(c(i),space);
    if(t==0)
        count1=count1+1;
        word1=;%ım trying to add the char here to find the new word
    else

    end
end

ı不知道该怎么做ı搜索但ı找不到有用的东西也许ı看起来不对。 任何事情都会有所帮助,谢谢

3 个答案:

答案 0 :(得分:2)

如果您有更新版本的MATLAB(我认为大于2012a),您可以使用strsplit

characterString = 'lou reed';
C = strsplit(characterString);

C将是一个单元格数组,每个元素都是一个单独的单词。

答案 1 :(得分:2)

允许使用哪些字符?首先,您应该删除所有不允许的字符(用空格字符替换它们?)。在那之后就是这样:

str = '  Once   upon   a    time    ';
words_in_str = textscan(str,'%s');
words_in_str{1}

答案 2 :(得分:0)

您可以使用

在字符串中找到空格字符
mystring = 'Hello Cruel World';
spaces = find(mystring==' ');

变量spaces现在是一个向量,指向每个单词分隔符的位置。如果你想将其分解为单词,可以使用

mystring = 'Hello Cruel World';
wordboundaries = [0,find(mystring==' ')];
wordlen = diff([wordboundaries,length(mystring)+1])-1;
numwords = length(wordboundaries);
for w = 1:numwords
    idx = wordboundaries(w) + (1:wordlen(w));
    word{w} = mystring(idx);
end 
display(word);

现在word是一个包含单个单词的单元格数组。