2013-01-14 18 views
6

Jak mogę zdefiniować set w Matlab, który ma następujące właściwości:Odpowiednik C++ std :: set w Matlab

  • unikalne przedmioty
  • Efektywne wyszukiwanie
  • Zamówiono

Może tam nie jest wbudowanym kontenerem, więc jak mogę połączyć niektóre rzeczy, aby uzyskać powyżej rzeczy tak samo jak std::set w C++?

Odpowiedz

7

Można użyć HashSet Javy tak:

>> x = java.util.HashSet; 
>> x.add(1); 
>> x.add(2); 
>> x.contains(1) 
ans = 
    1 
>> x.contains(3) 
ans = 
    0 
>> x 
x = 
[2.0, 1.0] 

w komentarzach wskazywano, że HashSet nie zamówił. Co jest całkowicie prawdziwe. Mój błąd! Można użyć TreeSet zamiast, który jest nakazał:

>> x = java.util.TreeSet; 
>> x.add(1); 
>> x.add(3); 
>> x.add(2); 
>> x 
x = 
[1.0, 2.0, 3.0] 
+1

Przypuszczalnie zestaw hash nie jest zlecane? – juanchopanza

+0

@juanchopanza prawda, naprawiona. –

+0

OK, +1 za to. – juanchopanza