String 字符串集高效实现

String 字符串集高效实现,string,matlab,set,String,Matlab,Set,有没有一种简单的方法可以在Matlab中创建一组字符串 我正在浏览一个文件路径列表,希望获得特定级别的所有文件夹名称。 但是因为在一些文件夹中有几个文件,我多次得到这些文件夹 我知道有可能创建一个单元格数组,每次检查当前文件夹名称是否已经在数组中,如果没有,则添加它 另一种选择是使用java HashSet类 但是有没有什么简单的内置Matlab方法可以做到这一点? 我不能使用向量,因为它会创建字符而不是字符串的向量。不幸的是,没有什么比Java集实现更有效的了 但是你可以使用集合运算。添加时,

有没有一种简单的方法可以在Matlab中创建一组字符串

我正在浏览一个文件路径列表,希望获得特定级别的所有文件夹名称。 但是因为在一些文件夹中有几个文件,我多次得到这些文件夹

我知道有可能创建一个单元格数组,每次检查当前文件夹名称是否已经在数组中,如果没有,则添加它

另一种选择是使用java HashSet类

但是有没有什么简单的内置Matlab方法可以做到这一点?
我不能使用向量,因为它会创建字符而不是字符串的向量。

不幸的是,没有什么比Java集实现更有效的了

但是你可以使用集合运算。添加时,可以使用
union
,也可以对具有副本的集合调用
unique

您可以使用脚本。。。MATLAB文件交换来解救

像这样使用它:

listing = rdir(name);
该函数返回一个类似于内置命令的结构
列表

它可以让您省去自己遍历目录树的麻烦。

那么“唯一”呢:


谢谢,但实际上文件结构不是本地的,它在某些版本控制系统中,所以我认为这在这里不起作用;)另外,我已经得到了一个过滤过的文件列表,其中只包含我需要的文件夹。谢谢,我想我会使用Javas HashSet,然后使用“ismember”
x = {'dog', 'cat', 'cat', 'fish', 'horse', 'bird', 'rat', 'rat'};    
x_set=unique(x)    
x_set =  
'bird'    'cat'    'dog'    'fish'    'horse'    'rat'