How can I decrease the running time of this code?

1 view (last 30 days)
for i=1:1:f-1
Ux(i,:)=X(i+1,:)-X(i,:)
Uy(i,:)=Y(i+1,:)-Y(i,:)
Uz(i,:)=Z(i+1,:)-Z(i,:)
end

Answers (1)

Star Strider
Star Strider on 14 Apr 2019
Use the diff (link) function:
Ux = diff(X);
Uy = diff(Y);
Uz = diff(Z);
When I timed your code and diff with these matrices:
f = 1000;
X = rand(f, 500);
Y = rand(f, 500);
Z = rand(f, 500);
the results were:
Elapsed time is 0.633127 seconds. % Your Code
Elapsed time is 0.007197 seconds. % ‘diff’
The resulting matrices were the same.
Experiment to get the result you want.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!