필터 지우기
필터 지우기

All possible Permutations for vector

조회 수: 2 (최근 30일)
Marco Gaetani d'Aragona
Marco Gaetani d'Aragona 2021년 3월 19일
댓글: Marco Gaetani d'Aragona 2021년 3월 19일
Hi,
I want to create a permutation starting from a vector. For example:
V=[3 3 5]
I want every possible permutation considering values lower or equal to that of the each column, so that the first column can contain number from 1 to 3, the second from 1 to 3 and the third from 1 to 5, without repetitions. In this case:
1 1 1
2 1 1
3 1 1
1 2 1
2 2 1
3 2 1
1 3 1
2 3 1
3 3 1
1 1 2
2 1 2
3 1 2
....
3 3 5
Any suggestion on how to do that?
Thank you

채택된 답변

Matt J
Matt J 2021년 3월 19일
V=[3,3,5];
n=numel(V);
Vc=cellfun(@(x) 1:x, num2cell(V), 'uni',0);
[C{1:n}]=ndgrid(Vc{:});
out=reshape( cat(n+1,C{:}) ,[],n)
out = 45×3
1 1 1 2 1 1 3 1 1 1 2 1 2 2 1 3 2 1 1 3 1 2 3 1 3 3 1 1 1 2

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by