How can I Store all the possible combinations of columns of a matrix?

조회 수: 26 (최근 30일)
for example I have : [1 2 3; 4 5 6; 7 8 9] as 3x3 matrix. Now I want : [2 1 3; 5 4 6; 8 7 9] and every other combination of it. in other word I want all nchoosek(n,2) of columns of a nxn matrix.

채택된 답변

José-Luis
José-Luis 2014년 7월 25일
I would recommend that you only save the indices, if you really need to. Sure, you only have a small matrix, but the amount of required memory can become a problem really fast in combinatorial problems.
a = [1 2 3; 4 5 6; 7 8 9];
idx = perms(1:size(a,2));
for ii = idx'
your_mat = a(:,ii)
end
  댓글 수: 3
Chenyang Zhang
Chenyang Zhang 2020년 5월 12일
how to store all the your_mat value from every loop into one matrix? Thanks in advance
Chenyang Zhang
Chenyang Zhang 2020년 5월 12일
In this case how do you get a 18x3 matrix as a result? Thank you

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

추가 답변 (1개)

Ben11
Ben11 2014년 7월 25일
As a starting point you could store the output of the function 'perms' is a cell array, in which the kth cell cell contains all the possible permutations of the kth column. Eg:
clear all
clc
A= [1 2 3;4 5 6;7 8 9];
P = cell(1,size(A,1));
for k = 1:size(A,1)
P{k} = perms(A(:,k))'; % Notice the transpose of the output.
end
disp('P{1}')
disp(P{1})
disp('P{2}')
disp(P{2})
disp('P{3}')
disp(P{3})
which gives this:
P{1}
7 7 4 4 1 1
4 1 7 1 4 7
1 4 1 7 7 4
P{2}
8 8 5 5 2 2
5 2 8 2 5 8
2 5 2 8 8 5
P{3}
9 9 6 6 3 3
6 3 9 3 6 9
3 6 3 9 9 6
Then you could implement a loop in which you take every column of say P{1} and get the possible combinations with the columns from P{2}, P{3} and so on. There is probably a built-in function for this but I don't know it sorry. I hope that helps!
  댓글 수: 2
samad khansari
samad khansari 2014년 7월 25일
편집: samad khansari 2014년 7월 25일
Thank you very much but not helping :)
Ben11
Ben11 2014년 7월 25일
Oh shoot sorry then I guess I misunderstood the question! :)

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

카테고리

Help CenterFile Exchange에서 Circuit Envelope Simulation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by