matlab 系统地从单元格中删除字符串

ghg1uchk  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(312)

我有一个单元格name1(nx 1)

a.mat
b.mat
c.mat
...
z.mat

我想创建一个单元格name2,其中的所有.mat都已删除,因此我将使用以下内容

a
b
c
...
z

我可以用strsplitfileparts创建一个循环并删除.mat,但这会非常麻烦。有人有捷径吗?提前感谢!

rqqzpn5f

rqqzpn5f1#

自R2016b起,您可以使用erase

name1New = erase( name1, '.mat' );

或者永远地

name1New = strrep( name1, '.mat', '' );

这两种方法都将删除单元格中.mat的所有示例,这对于文件名及其扩展名通常是很好的,但是如果出于某种原因需要将其严格限制为字符串 * 结尾 * 的.mat,则可以使用regexprep

name1New = regexprep( name1, '\.mat$', '' );

示例:

name = {'blah.mat', 'foo.mat', 'bar.matTest.mat'};
erase(name,'.mat')
ans =
  1×3 cell array
    {'blah'}    {'foo'}    {'barTest'}
regexprep( name, '\.mat$', '' )
ans =
  1×3 cell array
    {'blah'}    {'foo'}    {'bar.matTest'}

相关问题