fill matrix with all options of successive, increasing numbers 1-5
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sjoukje de Lange
el 25 de En. de 2021
Comentada: Sjoukje de Lange
el 26 de En. de 2021
I want to construct a matrix, m x n, filled with the numbers 1 till 5. The numbers have to be successive, and have to be increasing. One column of the matrix could for example look like.
A =1 1 2 2 2 2 3 4 5 5 5 5
or
A = 1 2 3 3 3 4 5 5 5 5 5 5
I want to construct a matrix with all possible options. The first column of matrix A therefore should look like this:
A(:,1) = 1 1 1 1 1 1 1 1 2 3 4 5
and the last one like this
A(:,end)= 1 2 3 4 5 5 5 5 5 5 5
In my case, the matrix will have a length of 96, instead of the above example where the length is 12. Could you help me?
8 comentarios
Adam Danz
el 25 de En. de 2021
Editada: Adam Danz
el 25 de En. de 2021
Why do you need repeated values, then?
There are 61,124,064 ways to select 5 items out of 96 and that's without repetition. With the repetitions you're looking at billions.
Addendum: the number above includes indicies that increase and decrease. If you're only interested in increading indicies, that number will be reduced.
Respuesta aceptada
Bruno Luong
el 25 de En. de 2021
Editada: Bruno Luong
el 25 de En. de 2021
p = 5;
n = 12;
j = nchoosek(2:n,p-1);
m = size(j,1); % == nchoosek(n-1,p-1) == 330 and not 96
i = repmat((1:m)',1,p-1);
A = cumsum(accumarray([i(:) j(:)],1,[m n]),2)+1
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Sparse Matrices 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!