Dynamic matrix columns combinations
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello,
I would like to find all possible combinations of a matrix columns, with each column contribute a value, in each itteration of a loop. The matrix size changes in each itteration. For example:
A = [1 2 3
4 5 6
7 8 9].
should produce:
1 2 3
1 2 6
1 5 3 etc.
but should not produce:
1 4 2 for example.
My problems:
- When insert the matrix to combvec function nothing happens. The function accept vectors - and since I do it with different matrix size in each Itteration of a loop I can't write it manually.
- ndgrid also requires vectors - and since I need to choose a combination index in other variable - I'm not clear how this happens.
- I don't have combination function in my Matlab version.
Is there a way to define vectors dynamically in a loop? any idea on to how overcome this? Do I need to write a combination function myself?
댓글 수: 1
Stephen23
2024년 6월 11일
"Is there a way to define vectors dynamically in a loop?"
What exactly do you mean?
답변 (1개)
Stephen23
2024년 6월 11일
편집: Stephen23
2024년 6월 11일
"any idea on to how overcome this? Do I need to write a combination function myself?"
Use NDGRID with some comma-separated lists:
A = [1,2,3;4,5,6;7,8,9]
C = num2cell(A,1);
N = numel(C);
[C{:}] = ndgrid(C{:});
M = reshape(cat(1+N,C{:}),[],N)
댓글 수: 1
Stephen23
2024년 6월 11일
If you really need just one combination on each loop iteration, then use the methods already described e.g.:
Note that for large arrays you will have a very large number of combinations.
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!