【问题标题】:Set of strings efficient implementation字符串集高效实现
【发布时间】:2012-05-29 11:30:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: string matlab set


    【解决方案1】:

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

    但是你可以使用集合操作。在您添加时union,或者只是在您的收藏中调用unique 重复。

    【讨论】:

    • 谢谢,我想我就用Javas HashSet吧。
    【解决方案2】:

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

    像这样使用它:

    listing = rdir(name);
    

    该函数返回一个结构listing,类似于内置的dir 命令。
    它应该可以避免您自己遍历目录树的麻烦。

    【讨论】:

    • 谢谢,但实际上文件结构不是本地的,它在某些版本控制系统中,所以我认为这在这里不起作用;)另外我已经得到了一个过滤的文件列表,它只包含我需要的文件夹。
    【解决方案3】:

    “独特”怎么样:

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

    【讨论】:

    • 然后用“ismember”跟进
    猜你喜欢
    • 1970-01-01
    • 2011-08-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2013-02-09
    • 2023-03-12
    相关资源
    最近更新 更多