Operation with components of a vector and for loop

1 vue (au cours des 30 derniers jours)
Vittorio Locatelli
Vittorio Locatelli le 3 Mai 2022
Good morning everyone,
given a vector of n components, I would need to perform the following operation: dist = n- (n-1) for all n.
Since the size of the vector is an unknown I interrogated the software to derive this and then I thought of building a for loop as described below. I think I understand the problem, I think that in the first matlab cycle I can't identify the second component to subtract and does not identify the component "n-1 = 0" but I can't think of anything alternative.
[nlocsrif,ncol]=size(locsrif)
for i = 1:nlocsrif
picco = sprintf("locsrif(%d)", i)
distpic= picco(i)-picco(i-1)
end
I trust in your solution and thank you in advance for the answers
Greetings
  2 commentaires
David Hill
David Hill le 3 Mai 2022
distpic=diff(picco);
Vittorio Locatelli
Vittorio Locatelli le 3 Mai 2022
Thanks a lot to you too.

Connectez-vous pour commenter.

Réponse acceptée

Monica Roberts
Monica Roberts le 3 Mai 2022
You might consider checking out the built-in matlab function "diff". Or you could loop from 2 to nlocsrif instead.
  2 commentaires
Vittorio Locatelli
Vittorio Locatelli le 3 Mai 2022
Thanks for the quick reply. Y = diff (X) seems to work for me. It is not possible for me to start from element 2 since by doing so I would not be able to calculate component2-component1.
Monica Roberts
Monica Roberts le 3 Mai 2022
You might notice that Y is a different size to X. This is because it subtracts the elements of X starting at X(2) - X(1). Let's say your data looks like:
X = [2,3,7,8,3,1];
Then Y = 1, 4, 1, -5, -2. X is of size 6, Y is of size 5. To get this we started by subtracting X(2) - X(1) or 3 - 2.
Should the first value of Y be X(1) - 0 instead? If so, you could do this:
X0 = [0,X];
Y = diff(X0);

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements 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