make some matrices from one matrix without repeating the same numbers

1 Ansicht (letzte 30 Tage)
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?

Akzeptierte Antwort

Thorsten
Thorsten am 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 Kommentare
fatema saba
fatema saba am 6 Nov. 2015
Thank you Thorsten, however is it possible to vectorise this code and concise it?
Thorsten
Thorsten am 6 Nov. 2015
Bearbeitet: Thorsten am 6 Nov. 2015
That's possible:
R = randperm(1000);
A = reshape(R, 200, [])';

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by