Adds one element in vector from another, by position in array

3 Ansichten (letzte 30 Tage)
Say I have a vector 'x' that is [1:100], and I want to create a function that creates a new vector 'y' that is the sum of x(n+2)+x(n+3) at each position (n) of x (beginning at 1 and moving through the vector). What would this function look like?
This is my attempt at the function, but it does not work
for i=1:size(x)
y(i) = [x(i+2)+x(i+3)]
...
end
Thank you for any help!

Akzeptierte Antwort

Stephen23
Stephen23 am 23 Dez. 2020
x = 1:100; % superfluous square brackets removed.
y = x(3:end-1)+x(4:end) % the MATLAB way.
y = 1×97
7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 23 Dez. 2020
y = x((1:end-3)+2) + x((1:end-3)+3)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by