2012-05-29 29 views
1

有没有一种简单的方法来在Matlab中创建一组字符串?一套字符串高效实现

我会通过文件路径的列表,并希望在特定级别获取文件夹的所有名称。 但是由于在某些文件夹中有几个文件,我多次获取这些文件夹。

我知道是创建一个单元阵列,检查每次如果当前文件夹名称已在阵列中的可能性,如果没有,添加它。

另一种选择是使用java HashSet的类。

但有没有简单的内置Matlab的方式做这样的事情? 我不能使用矢量,因为它会创建一个不是字符串的字符矢量。

回答

1

遗憾的是没有什么作为高效与Java Set实现。

但是你可以使用set操作。您可以在union之间添加,也可以在收藏中重复调用unique

+0

谢谢你,我想我会只使用Java类HashSet的呢。 –

1

您可以使用rdir脚本... MATLAB文件交换来救援!

使用方法如下:

listing = rdir(name); 

函数返回一个类似的结构listing内置dir命令。
它应该为您节省您自己迭代目录树的麻烦。

+0

谢谢,但实际上文件结构不是本地的,它在一些版本控制系统中,所以我认为这不会在这里工作;)我也已经得到了一个过滤的文件列表,其中只包含我需要的文件夹。 –

0

如何 “唯一”:

x = {'dog', 'cat', 'cat', 'fish', 'horse', 'bird', 'rat', 'rat'};  
x_set=unique(x)  
x_set = 
'bird' 'cat' 'dog' 'fish' 'horse' 'rat' 
+0

,然后跟进“ismember” – Jasper