Effacer les filtres
Effacer les filtres

make some matrices from one matrix without repeating the same numbers

1 vue (au cours des 30 derniers jours)
fatema saba
fatema saba le 4 Nov 2015
Modifié(e) : Thorsten le 6 Nov 2015
Hi I have matrix A
A=[1:1000]
I randomly made matrix B on the basis of 20 percent of (numel(A)) like that:
B= randi(1000,[1 200])
then I calculate difference between this two matrix and named it sdB.
sdB=setdiff(A,B)
now I want to determine matrix C on the basis of 20 percent of (numel(A) (it means 200 numbers) from matrix sdB. Then calculate difference between matrix B and C (or sdC). this process must be continue until in sum all 1000 numbers are determined. Is it possible to guide me please?

Réponse acceptée

Thorsten
Thorsten le 4 Nov 2015
Using B= randi(1000,[1 200]) you don't get 200 unique numbers. If your goal is to split the numbers from 1 to 1000 in random order into 5 chunks of 200 numbers, use
R = randperm(1000);
for i = 1:5
A(i,:) = R([1:200]+(i-1)*200);
end
A(i,:) is then your i'th set of 200 numbers randomly picked from 1000, but without repetitions.
  2 commentaires
fatema saba
fatema saba le 6 Nov 2015
Thank you Thorsten, however is it possible to vectorise this code and concise it?
Thorsten
Thorsten le 6 Nov 2015
Modifié(e) : Thorsten le 6 Nov 2015
That's possible:
R = randperm(1000);
A = reshape(R, 200, [])';

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by