Filter löschen
Filter löschen

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

2 Ansichten (letzte 30 Tage)
Nikolaos Zafirakis
Nikolaos Zafirakis am 3 Mai 2019
Kommentiert: M am 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!!

Antworten (2)

M
M am 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 Kommentare
Nikolaos Zafirakis
Nikolaos Zafirakis am 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 am 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

Melden Sie sich an, um zu kommentieren.


Steven Lord
Steven Lord am 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 Kommentar
Nikolaos Zafirakis
Nikolaos Zafirakis am 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))

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements 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