-1

解決できなかった問題があります。行に存在する一連のデータがあります (通常、いくつかの文で編成されたテキスト)

文中の私のテキストの例:

1. Hello, world, It, is, beautiful, to, see, you, all
2. ,Wishing, you, happy, day, ahead 

私はstrtokを使用しています

    [token remain] = strtok(remain, ', ');

%             token = strtrim(token);
            CellArray {NumberOFCells} = token(1:end) ;  
            NumberOFCells= NumberOFCells+1;

私は CellArray を使用してトークンをセルに格納していますが、私のコードは最初の文を取得してセルに入れ、2 番目の文に反復して事前に割り当てられたセルを削除し、トークンに置き換えます。 2番目の文。

期待される出力

  [ nxn ] [ nxn    ] [  ] [ ]   [       ]   [     ] [   ] [  ]  [       ] ...... 
    'Hello' 'world' 'It' 'is' 'beautiful' 'to' see' 'you' 'all' 'Wishing' 'you' 'happy' 'day' 'ahead' 

問題は、事前に入力されたセルをクリアせずに、2 番目の文の文字列をセルに追加する方法です。

ありがとうございます。専門家の matlab プログラマーにお会いできるのを楽しみにしています

My Code .. コメント行は無視... 取得は基本的にこの形です。

[Index,Retrieved] = system(['wn ' keyword   type  ]);

    Retrieved;
    arrowSymbol = ' => ';
    CommaSymbol= ', '
    NumberOfSense= 'Sense '; 

    % let's look for the lines with '=> ' only?
     senses = regexp(Retrieved, [arrowSymbol '[\w, ]*\n '], 'match');
     SplitIntoCell = regexp(senses, [CommaSymbol '[\w, ]*\n'], 'match');

   % now, we take out the '=> ' symbol
    for i = 1:size(senses, 2)

        senses{i} = senses{i}(size(arrowSymbol,2):end);
        SplitIntoCell{i}= SplitIntoCell{i}(size(CommaSymbol,2): end);
%         SeperateCells= senses ([1:2 ; end-1:end]);
%         SplitCellContentIntoSingleRows{i}= strtok (SeperateCells, ['\n' ])
        numberCommas = size(regexp(senses{i}, CommaSymbol), 2);

        remain = senses{i};
        RestWord= SplitIntoCell{i};
        NumberOFCells=1;
        for j = 2:numberCommas + 1 + 1 % 1 for a word after last comma and 1 because starts at index 2

%             RemoveCellComma= regexp (Conversion,',');

%            CellArray = [CellArray strsplit(remain, ', ')];
%            [str,~] = regexp(remain,'[^, \t]+', 'match', 'split');
%            CellArray = [CellArray str];

%              [token remain] = strtok(remain, ', ');
%              token = strtrim(token);
%              CellArray {NumberOFCells} = token(1:end) ;  
%              
% %              CellArray =[CellArray strsplit(remain, ', ')]
%              [str, ~]= regexp(remain,'[^, \t]+', 'match', 'split');
%              CellArray = [CellArray str];
%              NumberOFCells= NumberOFCells+1;

            [token remain] = strtok(remain, ', ');
            token = strtrim(token);
            CellArray {NumberOFCells} = token;   
            NumberOFCells= NumberOFCells+1;

取得済み=

cat, true cat
       => feline, felid
           => carnivore
               => placental, placental mammal, eutherian, eutherian mammal
                   => mammal, mammalian
                       => vertebrate, craniate
                           => chordate
                               => animal, animate being, beast, brute, creature, fauna
                                   => organism, being
                                       => living thing, animate thing
                                           => object, physical object
                                               => physical entity
                                                   => entity
4

1 に答える 1