Create custom matrix with user-defined parameters

Illustration
Benjamin - 2020-07-17T12:57:53+00:00
Question: Create custom matrix with user-defined parameters

I would like help creating a custom matrix that follows this pattern:   [1 1 -1 1; 1 1 1 -1; 1 2 -1 1; 1 2 1 -1; 1 3 -1 1; 1 3 1 -1; 2 1 -1 1; 2 1 1 -1; 2 2 -1 1; 2 2 1 -1; 2 3 -1 1; 2 3 1 -1; 3 1 -1 1; 3 1 1 -1; 3 2 -1 1; 3 2 1 -1; 3 3 -1 1; 3 3 1 -1; 4 1 -1 1; 4 1 1 -1; 4 2 -1 1; 4 2 1 -1; 4 3 -1 1; 4 3 1 -1] I want the maximum number to which the first two columns count to be user-determined (e.g., x and y, respectively). In the above example, x = 4 and y = 3. Column one counts to x, repeating each integer (2y) times. Column two counts to y, repeating each integer twice. Columns three and four alternate between -1 and 1 for the entirety of the matrix. So the total number of rows for the matrix is always (x * y * 2) which equals 24 in the above example.

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

x = 4 ;
y = 3 ;
[ X, Y ] = meshgrid( 1 : x, 1 : y ) ;
Alternator = repmat( ( - 1 ) .^ ( 1 : numel( X ) ).', 1, 2) ;
z = [ X( : ), Y( : ) ] ;
Wanted = [ repelem( z, 2, 1 ), Alternator( : ) * [ 1, - 1 ] ]


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!