subtract each element from the one before in a row matrix

11 views (last 30 days)
Lama Hamadeh
Lama Hamadeh on 31 Jul 2021
Edited: Cris LaPierre on 31 Jul 2021
Hi all,
I have a row matrix defined as:
s = linspace(0,4,17);
I want to create a vector that its elements are the half subtraction of two subsequent elements of vector s. My attempt to do that is the follwoing:
for i = 1:length(s)-1
for j = 2:length(s)
Mid_s = (s(j)-s(i))/2;
However, the result I'm having is just one number. How can I have all numbers resulted from the "for" loop as an array/vector?

Answers (1)

Cris LaPierre
Cris LaPierre on 31 Jul 2021
Edited: Cris LaPierre on 31 Jul 2021
You are overwritting your variable Mid_s everytime, so you just end up with the very last number. Ch 13 of MATLAB Onramp will introduce you to writing for loops.
As a suggestion for improvement, you can accomplish this with a single for loop. Even better, you should look into the diff command.

Community Treasure Hunt

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

Start Hunting!

Translated by