如何从MATLAB中的文件列表中提取特定文件

时间:2013-03-15 05:39:57

标签: regex matlab

我有一个名为list的单元格数组,其中包含一个文件列表。我想从该列表中仅提取特定文件并将它们存储在同一个数组中。这是我想要做的:

function [ varargout ] = myFiles( varargin )

list = {'test.m' '.' '..' 'test1.m' 'test2.txt'};

list = strmatch('*.m', list)

end

我的最终名单应如下所示,但是指数应该足够了。

list = test.m  test1.m

我在Windows上使用MATLAB。在双引号中使用模式会引发错误。 尝试使用\\'作为(。)和/或(*)的转义序列。

2 个答案:

答案 0 :(得分:1)

strmatch用于查找以给定前缀开头的字符串。不支持正则表达式。对于你想要的regexp,它以相反的顺序获取它的参数。或者,如果您反转所有字符串,则可以使用strmatch('m.',list)然后再次反转结果以恢复文件名。

答案 1 :(得分:0)

根据here,您需要这样的内容:.*\.m$问题与Windows中的常规搜索不同,*意味着重复了0次或更多次,因此单独执行此操作将无效。

在这种情况下,我说匹配任何字符(.表示任何单个字符)0次或更多次,然后在结尾处跟着.m$指定匹配必须在字符串末尾结束。