How to caculate a value for a step - the previous step

6 vues (au cours des 30 derniers jours)
Nikolaos Zafirakis
Nikolaos Zafirakis le 3 Mai 2019
Commenté : M le 6 Mai 2019
So, I have a value x and i want a piece of code which would allow me to take x_current - x_one_step_previously for example at iteration 50 i would want x_50-x_49 is there a way to do this in Matlab. Thanks in advance to anyone who helps!!

Réponses (2)

M
M le 3 Mai 2019
It depends on what you mean by "I have a value x".
It is actuallyquite easy to do for a straightforward example, but it depends on your applications.
Could you provide more details about what you are trying to do ?
Otherwise here is an example:
x = zeros(1,50);
for i = 1 :50;
x = i;
end
a = x (50) - x(49)
  2 commentaires
Nikolaos Zafirakis
Nikolaos Zafirakis le 3 Mai 2019
So my x value is a vector 1x3 and i need to do (x_current-x_one_step_previous)/time
say the time=100 seconds.
M
M le 6 Mai 2019
x is a vector 1x3, you can still save its value in another vector, let's call is x_saved, a vector of dimension 3 x 100.
Would something like the following example work ?
x_saved = zeros(3,100);
for i = 1 : 100
x = ... ; vector 1 x 3
x_saved(:,i) = x;
if i ~= 1
delta = x(:,i)-x(:,i-1);
end
end

Connectez-vous pour commenter.


Steven Lord
Steven Lord le 3 Mai 2019
If you have numbered variables (which you shouldn't) then it will be painful.
If you have elements in an array, it's easy.
x = (1:20).'.^2;
dx = diff(x);
Note that dx has one fewer element than x, so if you want to display them together you'll need to augment it with an extra element like so:
dx2 = [0; dx];
t = table(x, dx2, 'VariableNames', {'x', 'delta_x'})
  1 commentaire
Nikolaos Zafirakis
Nikolaos Zafirakis le 3 Mai 2019
Hello Steven,
I think you have misunderstood my question, hope this example clears it up. I look forward to your response.
kind regards,
Nikolaos
for i = 0:t
x(i) = (x1(i) - x2 /t1(i) -t2); % x2 and t2 are the state at the previous interval
end % so if at t = 20 i will have x(i) = (x1(20) - x2(19) /t1(20) -t2(19))

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB 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