大家好,我在 MATLAB 中有一个非常简单的问题:
我有一些这样的字符串:
Pic001
Pic002
Pic003
004
并非每个字符串都以前缀“Pic”开头。那么我怎样才能切断“图片”部分,即只有最后的数字将保持对我的所有字符串具有相同的格式?
问候,波斯克伦
如果 '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'
strings = {'Pic001'; 'Pic002'; 'Pic003'; '004'};
numbers = regexp(strings, '(PIC)?(\d*)','match');
for cc = 1:length(numbers);
fprintf('%s\n', char(numbers{cc}));
end;