【问题标题】:How to extract numbers in a filename from matlab?如何从matlab中提取文件名中的数字?
【发布时间】:2016-08-20 22:14:03
【问题描述】:

我必须从目录中的大量文件名中读出数字和可能的一些字母。文件名的格式为“aXXXX_bXX_XX_S.ext”,其中“X”可以是任何数字,“s”可以是任何字母或字符串。如何将这些数字和字符串提取为单独的元胞数组?

谢谢!

【问题讨论】:

  • 欢迎来到 StackOverflow!您应该向我们展示您已经尝试过的内容。现在,看看strsplitstrtok。祝你好运!
  • 你想要一个regular expression。我建议查看文档并在regex101 上玩耍以找出正确的模式。

标签: matlab parsing numbers filenames letters


【解决方案1】:

首先,您可以读取目录中的所有文件。假设您的文件夹的位置存储在字符串path 中,请使用:

 a=dir(mypath);

现在你有一个结构a。文件名存储在a.name 中。现在您可以使用它了。这是一个非常粗略的代码。你遍历所有文件,检查第一个字母是否是a(可能有一些隐藏文件,你不需要它们)。然后从符合条件的文件中提取所需的数据。

 n=0;
 for i=1:numel(a)
     if a(i).name(1)=='a'
         n=n+1; 
         numbers{n}=strcat(a(i).name(2:5),a(i).name(8:9),a(i).name(11:12));
         letters{n}=a(i).name(13:find(a(i).name=='.')-1);

     end
 end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 2015-06-15
    • 2013-03-03
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多