How to display arc length of the line created on a line plot based on the input data

5 vues (au cours des 30 derniers jours)
Hi,
I am currently plotting a series of x and y co-ordinates using the plot(x,y) function in MATLAB which outputs a graph that looks something like this:
How do I go about displaying the arc length of the line created at points along the line assuming my first x and y data point is 0% and my last data point is 100%?
  2 commentaires
Adam Danz
Adam Danz le 17 Jan 2022
The goal isn't quite clear. Is "arc length" some segment of the semi-circular area or are you asking for the entire length of the black line?
jessupj
jessupj le 17 Jan 2022
Modifié(e) : jessupj le 17 Jan 2022
i think you want something along the lines of the cumulative sum of the pythagorean distances between successive points on the curve, normalized by the final term.

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 17 Jan 2022
% some x and y:
x = [10:-1:2 2:10];
y = [5+sqrt(x(1:end/2)) 5-sqrt(x(end/2+1:end))];
plot(x,y,'-o');
set(gca(),'XLim',[0 12]);
% calculate "normalized arc length":
dx = diff(x);
dy = diff(y);
ds = sqrt(dx.^2+dy.^2);
s = cumsum([0 ds]);
s = s/s(end);
% put a text at each x,y with value of s:
v_a = {'top','bottom'};
nx = numel(x);
for i = 1:nx
text(x(i),y(i),sprintf('%d%%',round(100*s(i))),'VerticalAlignment',v_a{1+(i>nx/2)});
end

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by