File Exchange

## CARTPROD: Cartesian product of multiple sets

version 1.0.0.0 (712 Bytes) by
Returns a matrix containing the cartesian product of multiple input sets.

Updated 16 Jul 2004

CARTPROD Cartesian product of multiple sets. (The cartesian product of multiple input sets is a larger set containing every ordered combination of the input set elements. See example below.)

X = CARTPROD(A,B,C,...) returns the cartesian product of the sets A,B,C, etc, where A,B,C, are numerical vectors.

Example: A = [-1 -3 -5];
B = [10 11];
C = [0 1];

X = cartprod(A,B,C)
X =

-5 10 0
-3 10 0
-1 10 0
-5 11 0
-3 11 0
-1 11 0
-5 10 1
-3 10 1
-1 10 1
-5 11 1
-3 11 1
-1 11 1

This function requires IND2SUBVECT, also available (I hope) on the MathWorks File Exchange site.

### Cite As

David Fass (2021). CARTPROD: Cartesian product of multiple sets (https://www.mathworks.com/matlabcentral/fileexchange/5475-cartprod-cartesian-product-of-multiple-sets), MATLAB Central File Exchange. Retrieved .

Zhe Li

The program automatically sorts input sets, which is probably not a good idea -- users can do this themselves.

Hideki Kawakatsu

hello, very nice function that is doing almost what I need excepted that cartprod does not respect the order of the list of data. For example, A is [-1 -3 -5] but the results starts from -5 rather than -1.

Wissem

Hi, the file does not work Matlab gives me the following error message :
Undefined function or method 'ind2subVect' for input
arguments of type 'double'.

Michael

I need to use the cartesian product

I need to make a cartesian roduct of a vector for variable dimension but i cant find a code for this purpose. can somebody help me please?!!

Kshanti

I made a slight change to this file. I replaced your varargin with a cell array, in which each row is a vector. This might also be useful for other people when they don't know how many vectors need to be combined.

Norbert Zbroniec

Thanks for the m file, it was exact that for what i was searching

Nguyen Tat Duc Chinh

This m file work well on my problem in Communication toolbox to generate random noise. Thanks so much David Fass

##### MATLAB Release Compatibility
Created with R13
Compatible with any release
##### Platform Compatibility
Windows macOS Linux