【问题标题】:matlab How to remove .jpg from file namematlab如何从文件名中删除.jpg
【发布时间】:2013-10-17 06:03:18
【问题描述】:

我正在循环浏览很多文件,我需要从每个名称中删除“.jpg”。

示例文件名:

20403y.jpg 

但我只需要

20403y

如果有帮助,所有文件名都以“y”结尾。

【问题讨论】:

  • 不清楚您的意思...您是否将名称存储在 matlab 中的变量中并希望删除“.jpg”,还是要批量重命名文件?
  • 是的,我有一个带有文件名的变量,我想删除 .jpg

标签: matlab filenames


【解决方案1】:

一种方法是使用正则表达式:

filename = 'myfilename.jpg';
pattern = '.jpg';
replacement = '';
regexprep(filename,pattern,replacement)

结果:

ans =

myfilename

如果您在元胞数组中有文件名,请将元胞数组提供给regexprep。正如文档解释的那样,“如果 str 是一个字符串元胞数组,那么正则表达式返回值 s 始终是一个与 str 具有相同维度的字符串元胞数组。”

例子:

myfilenames = {'myfilename.jpg' 'afilename.jpg' 'anotherfilename.jpg' };
newfilenames= regexprep(myfilenames,'.jpg','');

结果:

newfilenames = 

    'myfilename'    'afilename'    'anotherfilename'

【讨论】:

  • 谢谢,这太完美了!
【解决方案2】:
files = dir('*y.jpg');

% Loop through each
for id = 1:length(files)
    % Get the file name (minus the extension)
    [p, f] = fileparts(files(id).name); % f will just give you file name

    % Use following to rename the files
    % I think you don't want to rename them
    % movefile(files(id).name, f);  
end

【讨论】:

  • 在这种情况下,我认为regexpstrrep 更可取,因为它们可以对元胞数组进行操作...
猜你喜欢
  • 2021-06-09
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多