How to generate Combination of special sets and subsets

조회 수: 1 (최근 30일)
Triveni
Triveni 2016년 5월 18일
댓글: Jos (10584) 2016년 5월 19일
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

채택된 답변

Jos (10584)
Jos (10584) 2016년 5월 18일
편집: Jos (10584) 2016년 5월 18일
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
Triveni
Triveni 2016년 5월 18일
편집: Triveni 2016년 5월 18일
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) 2016년 5월 19일
Why are you using 3D cell arrays?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Jos (10584)
Jos (10584) 2016년 5월 18일
편집: Jos (10584) 2016년 5월 18일
Found both of them :D
  댓글 수: 2
Jos (10584)
Jos (10584) 2016년 5월 18일
Sorry, lame joke. But I did not understand your question. Can you rephrase it?
Triveni
Triveni 2016년 5월 18일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by