Create custom matrix with user-defined parameters

2 vues (au cours des 30 derniers jours)
Blake Seaton
Blake Seaton le 3 Juil 2020
Commenté : Blake Seaton le 14 Juil 2020
Hi,
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.
Thanks in advance!
  2 commentaires
madhan ravi
madhan ravi le 3 Juil 2020
more explanation needed
Blake Seaton
Blake Seaton le 3 Juil 2020
Sorry, I'm not sure what more I can provide. I would like a block of code that will take a number for x and a number for y and create a matrix with the posted pattern and explanation. There are roundabout ways of getting it done, but because I'm still somewhat of a novice, I can't seem to come up with an elegant way to do it.

Connectez-vous pour commenter.

Réponse acceptée

madhan ravi
madhan ravi le 3 Juil 2020
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 ] ]
  4 commentaires
madhan ravi
madhan ravi le 14 Juil 2020
Wanted( Wanted(:, 1) ~= Wanted(:, 2), :)
Blake Seaton
Blake Seaton le 14 Juil 2020
You are too good... thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by