Create an alternating matrix

5 vues (au cours des 30 derniers jours)
John Carroll
John Carroll le 30 Nov 2022
Commenté : John Carroll le 30 Nov 2022
Hello. I am looking to create a 1xn matrix where I would enter a max value and a step size for the vector where each value alternates sign. For example I would enter a max value of 20 and a step size of 5 and the result would produce the following matrix;
[0 5 -5 10 -10 15 -15 20 -20]
Thank you in advance.

Réponse acceptée

DGM
DGM le 30 Nov 2022
Modifié(e) : DGM le 30 Nov 2022
There are many ways. Here's one.
% parameters
st = 5;
ev = 20;
A = [0 kron(st:st:ev,[1 -1])]
A = 1×9
0 5 -5 10 -10 15 -15 20 -20
Here's another:
B = repmat(0:st:ev,[2 1]).*[1; -1];
B = B(2:end)
B = 1×9
0 5 -5 10 -10 15 -15 20 -20
Here's another:
C = [0 repelem(st:st:ev,2)];
C(3:2:end) = -C(3:2:end)
C = 1×9
0 5 -5 10 -10 15 -15 20 -20
  1 commentaire
John Carroll
John Carroll le 30 Nov 2022
This works prefectly. I was completely unaware of the kron command. Thank you.

Connectez-vous pour commenter.

Plus de réponses (1)

VBBV
VBBV le 30 Nov 2022
maxV = 20;
stepS = 5;
I = zeros(1,2*(maxV/stepS)+1);
I1 = 0:stepS:maxV;
I2 = -I1(2:end);
I(1:2:end) = I1;
I(2:2:end) = I2;
I
I = 1×9
0 -5 5 -10 10 -15 15 -20 20
  1 commentaire
John Carroll
John Carroll le 30 Nov 2022
This works great as well. Thank you.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by