嘿伙计们,我在MATLAB中遇到一个非常简单的问题:
我有一些像这样的字符串:
Pic001
Pic002
Pic003
004
并非每个字符串都以前缀“Pic”开头。那么我怎样才能切断“pic”部分,即只有最后的数字才能保持所有字符串的格式相同?
Greets,poeschlorn
答案 0 :(得分:1)
如果'Pic'只作为字符串中的前缀而在字符串中的其他位置出现,那么您可以使用STRREP将其删除,如下所示:
>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'} x = 'Pic001' 'Pic002' 'Pic003' '004' >> x = strrep(x, 'Pic', '') x = '001' '002' '003' '004'
如果'Pic'可以出现在字符串的其他位置,并且您只想在它作为前缀出现时删除它,那么使用STRNCMP来比较字符串的前三个字符:
>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'} x = 'Pic001' 'Pic002' 'Pic003' '004' >> for ii = find(strncmp(x, 'Pic', 3))' x{ii}(1:3) = []; end >> x x = '001' '002' '003' '004'
答案 1 :(得分:0)
strings = {'Pic001'; 'Pic002'; 'Pic003'; '004'};
numbers = regexp(strings, '(PIC)?(\d*)','match');
for cc = 1:length(numbers);
fprintf('%s\n', char(numbers{cc}));
end;