0

私はmatlabを初めて使用し、ユーザーが入力するmatlab guiから入力を取り、その文を単語に分割しようとしていますが、ロボットを使用してそれらを書くため、それらを文字にする必要があります。この手紙はこれらのロボットに送られます。私は 2 台のロボットを使用しており、たとえば、ボタンを押したときにテキストに「lou reed」と書くと、matlab 関数はこの 2 つの単語を異なる文字配列に保持するため、このような文字 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 に答える
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は、個々の単語を含む cell 配列です。

于 2013-10-30T22:12:01.340 に答える