다음과 같은 문제가 있습니다. 나는 집합의 순열을 계산할 필요가있다. 그러나 세트에는 동일하고 반복적 인 순열을 야기하는 두 개의 요소가 포함될 수 있습니다. 예를 들어 :효율적으로 고유 순열 찾기
1 2 0 0
1 2 0 0
그러나, 나는 이들과 같은 동일한 순열을 피하기 위해 싶습니다 세트 [ 0 0 1 2 ]
을 감안할 때
unique(perms([ 0 0 1 2 ]), 'rows')
을 그러나 여기에서 문제는 효율성이다 - 나는 거대한 for
루프에서 반복적으로이 일을하고 있고 unique
에 필요한 정렬이 너무 느립니다 : MATLAB에서 나는 단순히이 작업을 수행 할 수 있습니다. 그래서 내 질문은 : 나는 직접의 독특한 순열을 계산할 수 있습니까? 나중에 결과를 반복하지 않아도됩니까? 저는 MATLAB에서 일하고 있습니다 만, MATLAB에서 벡터화 될 수있는 것이 이상적 일지 모르지만 단지 일반적인 해결책이 도움이 될 것입니다!
기존의 질문은이 문제를 정확하게 다루지는 못하지만, 이전에 답을 얻었다면 사과드립니다.
정말 어떤 문제를 해결하려고합니까? 왜 다른 어레이의 순열을 고속으로 찾아야하는지 루프가 있습니까? – nibot
좋은 점, 조금 더러워 지지만, 좀 더 구체적이어야했습니다. 객체와 관련된 클래스가 있지만 이미지간에 해당 객체 세트의 방법을 찾고 있습니다. 나는 집합 A에서 한 번에 5 개의 객체를 가져 와서 집합 B의 객체에 해당하는 모든 방법을 찾습니다. 각 클래스 내에서 순열을 찾아 클래스 제한을 처리합니다. 이것이 제로 (zeros)가되는 이유입니다. 그것들은 다른 객체와 쌍을 이루지 않는 객체를 나타냅니다. 그래서 나는 그러한 순열을 반복하고 싶지 않습니다. – jazzbassrob