Create an alternating matrix

11 Ansichten (letzte 30 Tage)
John Carroll
John Carroll am 30 Nov. 2022
Kommentiert: John Carroll am 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.

Akzeptierte Antwort

DGM
DGM am 30 Nov. 2022
Bearbeitet: DGM am 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 Kommentar
John Carroll
John Carroll am 30 Nov. 2022
This works prefectly. I was completely unaware of the kron command. Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

VBBV
VBBV am 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 Kommentar
John Carroll
John Carroll am 30 Nov. 2022
This works great as well. Thank you.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by