Borrar filtros
Borrar filtros

Dynamic matrix columns combinations

1 visualización (últimos 30 días)
mrish
mrish el 11 de Jun. de 2024
Comentada: Stephen23 el 11 de Jun. de 2024
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
Stephen23 el 11 de Jun. de 2024
"Is there a way to define vectors dynamically in a loop?"
What exactly do you mean?

Iniciar sesión para comentar.

Respuestas (1)

Stephen23
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]
A = 3x3
1 2 3 4 5 6 7 8 9
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
C = num2cell(A,1);
N = numel(C);
[C{:}] = ndgrid(C{:});
M = reshape(cat(1+N,C{:}),[],N)
M = 27x3
1 2 3 4 2 3 7 2 3 1 5 3 4 5 3 7 5 3 1 8 3 4 8 3 7 8 3 1 2 6
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
  1 comentario
Stephen23
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.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by