Dynamic matrix columns combinations
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentario
Stephen23
el 11 de Jun. de 2024
"Is there a way to define vectors dynamically in a loop?"
What exactly do you mean?
Respuestas (1)
Stephen23
el 11 de Jun. de 2024
Editada: Stephen23
el 11 de Jun. de 2024
"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 comentario
Stephen23
el 11 de Jun. de 2024
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.
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!