VChooseKRO

Versione 1.0.0.0 (10,8 KB) da Jan
Choose K elements from a vector with repetitions and order [MEX]
1,3K download
Aggiornato 1 gen 2010

Visualizza la licenza

VChooseKRO(V, K) creates a matrix, which rows are all permutations created by choosing K elements of the vector V with order and with repetitions.

INPUT:
V: Array of class DOUBLE, SINGLE, (U)INT8/16/32/64, LOGICAL, CHAR.
Prefer (U)INT8 or (U)INT16 for speed.
K: Number of elements to choose.

OUTPUT:
Y: Matrix of size [NUMEL(V)^K, K].
Y has the same class as the input V.

EXAMPLES:
Choose 2 elements from [1,2,3]:
VChooseKRO(1:3, 2) ==> [1,1; 1,2; 1,3; 2,1; 2,2; 2,3; 3,1; 3,2; 3,3]
For speed cast the input to integer types if possible:
Y = double(VChooseKRO(int16(1:1000), 2));
is faster than:
Y = VChooseKRO(1:1000, 2);
To get the permutations of cell arrays, permute the index:
C = {'a', 'b', 'c', 'd'};
C2 = C(VChooseKRO(1:4, 2))
==> C2 = {'a', 'b'; 'a', 'c'; 'a', 'd'; 'b', 'c'; 'b', 'd'; 'c', 'd'}

This MEX version is faster than NPERMUTEK and the more general COMBINATOR of Matt Fig: ~8 times for small arrays, ~2 times for (N=2000, K=2), ~10 times for (N=2, K=16, Class=INT8). COMBN of Jos is again slower than Matt's functions and it does not handle INT classes. See screen shot.

Tested: Matlab 6.5, 7.7, 7.8, WinXP, Compilers: BCC5.5, LCC2.4/3.8, Open Watcom 1.8
The unit-test TestVChooseKRO should be called after compiling. It compares the speed of VChooseKRO with COMBN, NPERMUTEK and COMBINATOR, if these files are found in the path.

See also: VChooseK (no repetitions, no order):
http://www.mathworks.com/matlabcentral/fileexchange/26190

I'd appreciate suggestions for improvements and bug reports sent through email - thanks.

Cita come

Jan (2024). VChooseKRO (https://www.mathworks.com/matlabcentral/fileexchange/26242-vchoosekro), MATLAB Central File Exchange. Recuperato .

Compatibilità della release di MATLAB
Creato con R2009a
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS Linux
Categorie
Scopri di più su Antennas, Microphones, and Sonar Transducers in Help Center e MATLAB Answers
Riconoscimenti

Ispirato da: permn, N_PERMUTE_K, COMBINATOR -combinations AND permutations

Ispirato: VChooseKO

Community Treasure Hunt

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

Start Hunting!
Versione Pubblicato Note della release
1.0.0.0