# resampling to avoid limit - nchoosek

4 views (last 30 days)
Joel Schelander on 14 Apr 2021
Commented: Steven Lord on 15 Apr 2021
I am investigating the combination of vehicles and houses.
My equation for this is:
i=nchoosek(1:numel(VID1),size(Hcombos,2));
Where VID1 is a cell containing all the possible combinations of vechicles for one house and size(Hcombos2,2) is the number of households.
My problem is that I have 429 vehicles and 36 households. I need to limit the number of combinations I generate: when I combine 429 vehicles with 36 houses, I should get out 1000 (arbitrary) of those combinations. .
Adam Danz on 14 Apr 2021
Edited: Adam Danz on 14 Apr 2021
Sounds like you need to use randperm.
To choose 1000 unique random samples from values 1:429,
randperm(429, 1000)

Steven Lord on 14 Apr 2021
Assuming VID1 has 429 elements and Hcombos has 36 rows, that means you're trying to generate one of this many combinations:
N = nchoosek(429, 36)
Warning: Result may not be exact. Coefficient is greater than 9.007199e+15 and is only accurate to 15 digits
N = 3.4817e+52
If you were planning to operate on each combination in turn, how fast can you perform those operations? Let's assume you could process a million combinations a second. How long would it take?
years(seconds(N/1e6))
ans = 1.1033e+39
To think about that period of time you need to look at the timeline of the far future.
Let's talk about the bigger picture for a second. What exactly do these combinations represent? Do you just want a logical matrix of size [numel(VID1),size(Hcombos,2)] with restrictions on how many true values can be in each row and/or each column, to map households and vehicles? Do you want random permutation matrices?
##### 2 CommentsShowHide 1 older comment
Steven Lord on 15 Apr 2021
Okay, so what you're looking for is a matrix of size [numberOfHouses numberOfVehicles] where each row has exactly one value equal to 1 and the rest are 0 and where each column has either no value equal to 1 or exactly one value equal to 1?
If you want the transpose of that matrix instead with the limitations on rows and columns swapped accordingly that's fine, I mainly just want to make sure I understand the problem.

### Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

R2017b

### Community Treasure Hunt

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

Start Hunting!