Заменить каждую строку, содержащую '#' - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть массив ячеек, содержащий строки, подобные dataT1 ниже. Как заменить все строки, содержащие '#', на букву 'O' и ничего больше (в строке нет цифр)?

dataT1 = {

    [275.7770]    [169.6630]    [89.5380]    [48.2740]    [24.2400]    [12.7510]
    [284.3560]    [160.4500]    [87.3740]    [47.4500]    [23.9530]    [12.4590]
    '# 12.304'    [129.7730]    [66.2630]    [34.1540]    [15.1730]    [ 9.6840]
    [267.5270]    [152.3700]    '# 17.504'    [45.2510]    [23.3770]    [13.0670]
    [206.9110]    [115.3030]    [56.4770]    [29.9350]    [14.8680]    '# 6.504' }

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете использовать простой цикл.

Если вы хотите заменить # на O, используйте это:

for c = 1:numel(data)
    % check for character array type in case cell also has numeric values
    if ischar(data{c})
        % replace hashes with 'O'
        data{c} = strrep(data{c}, '#', 'O');
    end
end

Если вы хотите заменить целые строки, содержащие #, только строкой 'O', используйте это:

for c = 1:numel(data)
    % check for character array type in case cell also has numeric values
    if ischar(data{c})
        % Search for # within string
        if strfind( data{c}, '#' ) > 0
            % replace string with 'O'
            data{c} = 'O';
        end
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...