が一般的なアプローチだ:7の両方がそれを格納する前に来ている場合はAの任意のサイズのために仕事に
A = [1 2 4 7 9 10
1 3 4 9 7 8
1 2 9 4 7 10
1 2 4 5 6 8
1 2 3 5 7 9
1 2 5 6 7 9]; % data
v = 7; % values "after"
w = [5 9]; % values "before"
ind = any(ismember(A,v), 2) & any(ismember(A,w), 2); % rows that qualify
[~, indv] = max(ismember(A(ind,:),v), [], 2); % col index of "after" values
[~, indw] = max(ismember(A(ind,:),w), [], 2); % col index of "before" values
remove = indw<indv; % these should be removed, among those given by ind
ind = find(ind);
A(ind(remove),:) = []; % remove
親愛なるルーシー、[多かれ少なかれ同じ問題を再版](http://stackoverflow.com/questions/37242533/is-there-any-way-to-do-permutation-of-more-than -11-コンポーネント)は、特にあなたのユースケースが依然として明確でないときではなく、特に答えを得るのに役立ちません。私はまだ、実際に問題に近づいているあなたの方法が、可能な数の順列の階乗的成長のため、実際には最良の方法であると確信しています。この多くの順列は論文の締め切り前に計算されないので、別の方法を見つけることでよりうまくいくでしょう。 – Adriaan