首页 > 解决方案 > Matlab:仅对特定字符数组执行过程

问题描述

我的工作区中加载了 60 个不同的字符数组(Book01、Book02、...、Book60)。例如,Book01 是一个 1x202040 字符。

我正在处理一个脚本文件,并尝试将 Book45 的最后一句(“RandomInfoAtEnd”)分开,直到 Book58:

WholeBook = Book50; % Call Array for test

for i = 1:60
    book = eval(['Book' num2str(i)]);
    if i >= 45 && i <= 58
        % Procedure to separate last sentence.
        Chr = convertStringsToChars(WholeBook);
        SearchedUnit = '.!?' ;    % Sentence end punctuation
        idx = ismember (Chr, SearchedUnit); 
        Loc = find (idx, 2, 'last'); % Find second last sentence-ending-punctuation
            if numel (Loc) < 2
                error ('the requested character cannot be found')
            end
        SecondLastLocation = Loc (1);
        AllLocations = find (idx);
        RandomInfoAtEnd = extractAfter(WholeBook,SecondLastLocation);
    else
        RandomInfoAtEnd = ''; % No sentence separated
    end
end

现在我只有 IF 语句或 FOR 循环逻辑有问题,RandomInfoAtEnd = ''对于任何被调用的数组。我的程序运行良好,因为它完美地将最后一句话与任何数组分开,但是我做错了FOR-loop/IF-statement什么?谢谢。

标签: arraysmatlabif-statement

解决方案


推荐阅读