How to generate Combination of special sets and subsets

1 visualización (últimos 30 días)
Triveni
Triveni el 18 de Mayo de 2016
Comentada: Jos (10584) el 19 de Mayo de 2016
a = [100, 125, 150, 175, 200, 225, 250, 275, 300, 325]; %Initial Guess
Fx(:,:,1) = [100, 125, 150, 175, 200, 225, 250, 275, 300, 325];
Fx(:,:,2) = [125, 150, 175, 200, 225, 250, 275, 300, 325, 100]; % Delete First Column and add to last
Fx(:,:,3) = [150, 175, 200, 225, 250, 275, 300, 325, 100, 125]; % Delete Second Column and add to last
Fx(:,:,4) = [175, 200, 225, 250, 275, 300, 325, 100, 125, 150];
Fx(:,:,5) = [200, 225, 250, 275, 300, 325, 100, 125, 150, 175];
Fx(:,:,6) = [225, 250, 275, 300, 325, 100, 125, 150, 175, 200];
Fx(:,:,7) = [250, 275, 300, 325, 100, 125, 150, 175, 200, 225];
Fx(:,:,8) = [275, 300, 325, 100, 125, 150, 175, 200, 225, 250];
Fx(:,:,9) = [300, 325, 100, 125, 150, 175, 200, 225, 250, 275];
Fx(:,:,10)= [300, 325, 100, 125, 150, 175, 200, 225, 250, 275];
Tx = [Fx(:,:,1),Fx(:,:,2),Fx(:,:,3),Fx(:,:,4),Fx(:,:,5),Fx(:,:,6),Fx(:,:,7),Fx(:,:,8),Fx(:,:,9),Fx(:,:,10)]; % Combine all subsets
Cx(:,:,1) = [100, 125, 150, 175, 200, 225, 250, 275, 300, 325];
Cx(:,:,2) = [125, 150, 175, 200, 225, 250, 275, 300, 325];
Cx(:,:,3) = [150, 175, 200, 225, 250, 275, 300, 325];
Cx(:,:,4) = [175, 200, 225, 250, 275, 300, 325];
Cx(:,:,5) = [200, 225, 250, 275, 300, 325];
Cx(:,:,6) = [225, 250, 275, 300, 325];
Cx(:,:,7) = [250, 275, 300, 325];
Cx(:,:,8) = [275, 300, 325];
Cx(:,:,9) = [300, 325];
Cx(:,:,10)= [300];
Tc = [Cx(:,:,1),Cx(:,:,2),Cx(:,:,3),Cx(:,:,4),Cx(:,:,5),Cx(:,:,6),Cx(:,:,7),Cx(:,:,8),Cx(:,:,9),Cx(:,:,10)];
%Please help me to find Tx and Tc

Respuesta aceptada

Jos (10584)
Jos (10584) el 18 de Mayo de 2016
Editada: Jos (10584) el 18 de Mayo de 2016
This is called a circulant matrix. I have written a function that can be found in the File Exchange:
A = [100 125 300 400]
B = circulant(A,-1)
tf = flipud(tril(true(size(B))))
C = B(tf)
  2 comentarios
Triveni
Triveni el 18 de Mayo de 2016
Editada: Triveni el 18 de Mayo de 2016
Can you combine it(in Tx) automatically
a = [100, 125, 150, 175, 200, 225, 250, 275, 300, 325];
for k = 1: numel(a)
Fx{:,:,k} = a(k:numel(a))
end
Tx = [Fx{:,:,1},Fx{:,:,2},Fx{:,:,3},Fx{:,:,4},Fx{:,:,5},Fx{:,:,6},Fx{:,:,7},Fx{:,:,8},Fx{:,:,9},Fx{:,:,10}];
%
Jos (10584)
Jos (10584) el 19 de Mayo de 2016
Why are you using 3D cell arrays?

Iniciar sesión para comentar.

Más respuestas (1)

Jos (10584)
Jos (10584) el 18 de Mayo de 2016
Editada: Jos (10584) el 18 de Mayo de 2016
Found both of them :D
  2 comentarios
Jos (10584)
Jos (10584) el 18 de Mayo de 2016
Sorry, lame joke. But I did not understand your question. Can you rephrase it?
Triveni
Triveni el 18 de Mayo de 2016
I want to solve it from loop. or any good way instead of manual solution. i need combination Fx and combine all Fx into Tx
Tx =
Columns 1 through 27
100 125 150 175 200 225 250 275 300 325 125 150 175 200 225 250 275 300 325 100 150 175 200 225 250 275 300
Columns 28 through 54
325 100 125 175 200 225 250 275 300 325 100 125 150 200 225 250 275 300 325 100 125 150 175 225 250 275 300
Columns 55 through 81
325 100 125 150 175 200 250 275 300 325 100 125 150 175 200 225 275 300 325 100 125 150 175 200 225 250 300
Columns 82 through 100
325 100 125 150 175 200 225 250 275 300 325 100 125 150 175 200 225 250 275
and Tc (combine all combination). I am unable to calculate Tc.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by