0

大家好,我在 MATLAB 中有一个非常简单的问题:

我有一些这样的字符串:

Pic001
Pic002
Pic003
004

并非每个字符串都以前缀“Pic”开头。那么我怎样才能切断“图片”部分,即只有最后的数字将保持对我的所有字符串具有相同的格式?

问候,波斯克伦

4

2 回答 2

1

如果 'Pic' 仅作为前缀出现在您的字符串中,而没有出现在字符串中的其他任何地方,那么您可以使用STRREP将其删除,如下所示:

>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'}

x =

    'Pic001'
    '图片002'
    '图片003'
    '004'

>> x = strrep(x, '图片', '')

x =

    '001'
    '002'
    '003'
    '004'

如果 'Pic' 可以出现在字符串中的其他位置,并且您只想在它作为前缀出现时将其删除,则使用STRNCMP比较字符串的前三个字符:

>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'}

x =

    'Pic001'
    '图片002'
    '图片003'
    '004'

>> for ii = find(strncmp(x, 'Pic', 3))'
x{ii}(1:3) = [];
结尾
>> x

x =

    '001'
    '002'
    '003'
    '004'
于 2011-02-23T12:28:14.727 回答
0
strings = {'Pic001'; 'Pic002'; 'Pic003'; '004'};
numbers = regexp(strings, '(PIC)?(\d*)','match');
for cc = 1:length(numbers); 
    fprintf('%s\n', char(numbers{cc}));
end;
于 2011-02-23T12:27:06.510 回答