Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中的前缀匹配_Matlab_Prefix - Fatal编程技术网

MATLAB中的前缀匹配

MATLAB中的前缀匹配,matlab,prefix,Matlab,Prefix,嘿,伙计们,我在MATLAB中有一个非常简单的问题: 我有一些字符串如下所示: Pic001 Pic002 Pic003 004 >> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'} x = 'Pic001' 'Pic002' 'Pic003' '004' >> x = strrep(x, 'Pic', '') x = '001' '002' '003' '004' 并非每个字符串

嘿,伙计们,我在MATLAB中有一个非常简单的问题:

我有一些字符串如下所示:

Pic001
Pic002
Pic003
004
>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'} x = 'Pic001' 'Pic002' 'Pic003' '004' >> x = strrep(x, 'Pic', '') x = '001' '002' '003' '004' 并非每个字符串都以前缀“Pic”开头。那么,我如何才能切断“pic”部分,即只有末尾的数字才能保持所有字符串的相同格式呢


问候,poeschlorn

如果“Pic”仅作为前缀出现在字符串中,而不出现在字符串中的其他位置,则您可以使用以下方法删除它:

Pic001
Pic002
Pic003
004
strings = {'Pic001'; 'Pic002'; 'Pic003'; '004'};
numbers = regexp(strings, '(PIC)?(\d*)','match');
for cc = 1:length(numbers); 
    fprintf('%s\n', char(numbers{cc}));
end;
>> x = {'Pic001'; 'Pic002'; 'Pic003'; '004'} x = 'Pic001' 'Pic002' 'Pic003' '004' >> x = strrep(x, 'Pic', '') x = '001' '002' '003' '004' >>x={'Pic001';'Pic002';'Pic003';'004'} x= ‘Pic001’ ‘Pic002’ ‘Pic003’ '004' >>x=strrep(x,'Pic','') x= '001' '002' '003' '004' 如果“Pic”可以出现在字符串中的其他位置,并且您只想在它作为前缀出现时将其删除,则使用来比较字符串的前三个字符:

>> 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' >>x={'Pic001';'Pic002';'Pic003';'004'} x= ‘Pic001’ ‘Pic002’ ‘Pic003’ '004' >>对于ii=查找(strncmp(x,'Pic',3))' x{ii}(1:3)=[]; 结束 >>x x= '001' '002' '003' '004'
您看过任何字符串处理函数()吗?嘿,谢谢您的快速回答。在您的示例中,这非常好:)您能给我一个提示,如何在单元格数组中传输它吗?或者告诉我如何在字符数组中转换单元格数组?@poeschlom-您可以通过命令将字符数组转换为单元格数组。我不确定我做错了什么,如果我使用cellstr(myCellArray),我会收到一个名为“输入必须是字符串”的错误……尽管我的所有字符串都具有如上所示的格式,并且存储在(我有36个输入字符串)@poeschlom-我想我误解了你的意图。听起来你的字符串已经在单元格数组中。你想将它们转换为字符数组吗?我想我必须这样做!?虽然我想在simulink中处理这些数据,simulink无法访问单元格数组中的值…所以这是一种方法,还是我误解了他的?