Operate on Successive Values Without Loops

1 回表示 (過去 30 日間)
David
David 2012 年 5 月 1 日
Say I have a vector of x values, and a vector of y values. I would like to write a function to calculate the distance between successive points. I know how to do this in a loop, like the snippet given below.
for i = 1:1:size(x) - 1
distance(i) = sqrt((x(i) - x(i + 1)) ^ 2 + (y(i) - y(i + 1)) ^ 2)
end
Is there a way to do this without the loop?

採用された回答

Kye Taylor
Kye Taylor 2012 年 5 月 1 日
Totally... first arrange your vectors as column vectors, then try
distance = sum(sqrt((x(1:end-1)-x(2:end)).^2 + (y(1:end-1)-y(2:end)).^2),2);
  2 件のコメント
David
David 2012 年 5 月 1 日
Great! Except for the sum(), this was exactly what I needed.
Kye Taylor
Kye Taylor 2012 年 5 月 1 日
Haha, right... no sum :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePID Controller Tuning についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by