0

我是matlab的新手,我试图从matlab gui中获取输入,用户将输入该输入并将该句子分成单词,但我需要将它们作为字母,因为我使用机器人来编写它们。这封信将发送给这些机器人。我使用了两个机器人,例如当我按下按钮时在文本中写“lou reed”时,matlab 函数会将这两个单词保存到不同的字符数组中,以便我可以像这样拥有字母 c(i) 并将它们发送到过程。到目前为止,我写了这些,但我卡住了。

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

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

4

3 回答 3

2

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

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

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

于 2013-10-30T22:17:21.193 回答
2

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

str = '  Once   upon   a    time    ';
words_in_str = textscan(str,'%s');
words_in_str{1}
于 2013-10-30T22:28:26.147 回答
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是一个包含单个单词的元胞数组。

于 2013-10-30T22:12:01.340 回答