2012-05-29 28 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