Filter löschen
Filter löschen

Insertion of the index

2 Ansichten (letzte 30 Tage)
Bathrinath
Bathrinath am 18 Dez. 2013
Bearbeitet: Andrei Bobrov am 18 Dez. 2013
The number of jobs n =4 which are in k = [3,2,4,6].
First index value in k is 3, now i need to insert the first index value to second index value which is k1 = [2,3,4,6]. From k,first index value is inserted to the third index value k2 = [2,4,3,6]. From k, first index value is inserted to fourth index value k3 = [2,4,6,3]. Now the first index process is over. Select the second index form k and insert the values in different position. k4 = [2,3,4,6]; k5 = [3,4,2,6]; k6= [3,4,6,2].
Select the third index from k and insert the values in different position. k7 = [4,3,2,6]; k8= [3,4,2,6]; k9 = [3,2,6,4].
Select the fourth index from k and insert the valued in different position. K10 = [6,3,2,4]; k11 = [3,6,2,4]; k12 = [3,2,6,4].
This process has to be repeated with respect to the number of jobs.

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 18 Dez. 2013
Here's a way using two nested for-loops:
K = zeros(n*(n-1),n);
r = 0;
for i1 = 1:n
p = [1:i1-1,i1+1:n];
for i2 = p
r = r + 1;
K(r,:) = k([p(1:i2-1),i1,p(i2:n-1)]);
end
end
The rows of K are your k1, k2, k3, ...,
  1 Kommentar
Bathrinath
Bathrinath am 18 Dez. 2013
Thanks sir its working fine

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 18 Dez. 2013
Bearbeitet: Andrei Bobrov am 18 Dez. 2013
n =4;
k = [3,2,4,6];
i1 = repmat((1:n)',1,n);
p = i1.*~eye(n)+triu(ones(n));
i3 = rem(bsxfun(@plus,reshape(0:n-1,1,1,[]),p)-1,n)+1;
i02 = reshape(i3,n,[])';
i02((1:n:size(i02,1)) + (0:n-1),:)=[];
out = k(i02);

Kategorien

Mehr zu MATLAB Parallel Server finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by