<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974</link>
    <title>MATLAB Central Newsreader - equally spaced data points over a curve</title>
    <description>Feed for thread: equally spaced data points over a curve</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Mon, 10 Nov 2008 14:15:04 -0500</pubDate>
      <title>equally spaced data points over a curve</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974#610022</link>
      <author>Dave Brackett</author>
      <description>Hi, &lt;br&gt;
&lt;br&gt;
I have plotted a curve which connects up some data points. The curve is not a straight line.&lt;br&gt;
&lt;br&gt;
I would like to compute a new set of data points from the plotted curve, but equally spaced over the length of the curve. The number of points would be specified which would control the resolution. &lt;br&gt;
&lt;br&gt;
Does anyone know how I could do this? If you need any more information please ask. Thanks.</description>
    </item>
    <item>
      <pubDate>Mon, 10 Nov 2008 16:37:19 -0500</pubDate>
      <title>Re: equally spaced data points over a curve</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974#610075</link>
      <author>Doug Schwarz</author>
      <description>In article &amp;lt;gf9fl8$4kh$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;nbsp;&quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt; Hi, &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I have plotted a curve which connects up some data points. The curve is not a &lt;br&gt;
&amp;gt; straight line.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I would like to compute a new set of data points from the plotted curve, but &lt;br&gt;
&amp;gt; equally spaced over the length of the curve. The number of points would be &lt;br&gt;
&amp;gt; specified which would control the resolution. &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Does anyone know how I could do this? If you need any more information please &lt;br&gt;
&amp;gt; ask. Thanks.&lt;br&gt;
&lt;br&gt;
Here's something I plan on contributing to the FEX when I get a chance &lt;br&gt;
to clean it up and document it.  It's not especially fast, but if you &lt;br&gt;
already have x and y in functional form it could be faster.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----------------- linspacearc.m ---------------------------&lt;br&gt;
function [x2,y2] = linspacearc(x,y,n)&lt;br&gt;
m = length(x);&lt;br&gt;
t = linspace(0,1,m);&lt;br&gt;
ppx = spline(t,x);&lt;br&gt;
ppy = spline(t,y);&lt;br&gt;
&amp;nbsp;&lt;br&gt;
dppx = pp_deriv(ppx);&lt;br&gt;
dppy = pp_deriv(ppy);&lt;br&gt;
integrand = @(tt) sqrt(ppval(dppx,tt).^2 + ppval(dppy,tt).^2);&lt;br&gt;
arc_length = quadgk(integrand,0,1);&lt;br&gt;
s = linspace(0,arc_length,n);&lt;br&gt;
&amp;nbsp;&lt;br&gt;
inv_arc_len = @(arc,est) fzero(@(u)(quadgk(integrand,0,u)) - arc,est);&lt;br&gt;
&amp;nbsp;&lt;br&gt;
t2 = zeros(1,n);&lt;br&gt;
t2(1) = inv_arc_len(s(1),0);&lt;br&gt;
for i = 2:n&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t2(i) = inv_arc_len(s(i),t2(i-1));&lt;br&gt;
end&lt;br&gt;
&amp;nbsp;&lt;br&gt;
x2 = ppval(ppx,t2);&lt;br&gt;
y2 = ppval(ppy,t2);&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
function dpp = pp_deriv(pp)&lt;br&gt;
% pp_deriv: derivative of piecewise polynomial (pp)&lt;br&gt;
&amp;nbsp;&lt;br&gt;
dpp = pp;&lt;br&gt;
n = pp.order;&lt;br&gt;
dpp.coefs = bsxfun(@times,n-1:-1:1,pp.coefs(:,1:n-1));&lt;br&gt;
dpp.order = n - 1;&lt;br&gt;
-------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Simply pass in your x and y vectors and the number of desired output &lt;br&gt;
points and get back your new x and y vectors.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Doug Schwarz&lt;br&gt;
dmschwarz&amp;ieee,org&lt;br&gt;
Make obvious changes to get real email address.</description>
    </item>
    <item>
      <pubDate>Mon, 10 Nov 2008 18:02:03 -0500</pubDate>
      <title>Re: equally spaced data points over a curve</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974#610109</link>
      <author>Dave Brackett</author>
      <description>Thanks for your code Doug, however, it doesn't do what I want. Your code computes points over the curve equally spaced along the x axis. What I want is to compute points over the curve equally spaced along the curve.&lt;br&gt;
&lt;br&gt;
My curve has regions of zero gradient and regions of much steeper gradient. I want the distance between each set of two points to be the same over the length of the curve.&lt;br&gt;
&lt;br&gt;
Do you know how your code could be edited to enable this? Thanks for your help so far.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Doug Schwarz &amp;lt;see@sig.for.address.edu&amp;gt; wrote in message &amp;lt;see-AE3628.11371810112008@news.frontiernet.net&amp;gt;...&lt;br&gt;
&amp;gt; In article &amp;lt;gf9fl8$4kh$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;gt;  &quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Hi, &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I have plotted a curve which connects up some data points. The curve is not a &lt;br&gt;
&amp;gt; &amp;gt; straight line.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I would like to compute a new set of data points from the plotted curve, but &lt;br&gt;
&amp;gt; &amp;gt; equally spaced over the length of the curve. The number of points would be &lt;br&gt;
&amp;gt; &amp;gt; specified which would control the resolution. &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Does anyone know how I could do this? If you need any more information please &lt;br&gt;
&amp;gt; &amp;gt; ask. Thanks.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Here's something I plan on contributing to the FEX when I get a chance &lt;br&gt;
&amp;gt; to clean it up and document it.  It's not especially fast, but if you &lt;br&gt;
&amp;gt; already have x and y in functional form it could be faster.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ----------------- linspacearc.m ---------------------------&lt;br&gt;
&amp;gt; function [x2,y2] = linspacearc(x,y,n)&lt;br&gt;
&amp;gt; m = length(x);&lt;br&gt;
&amp;gt; t = linspace(0,1,m);&lt;br&gt;
&amp;gt; ppx = spline(t,x);&lt;br&gt;
&amp;gt; ppy = spline(t,y);&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; dppx = pp_deriv(ppx);&lt;br&gt;
&amp;gt; dppy = pp_deriv(ppy);&lt;br&gt;
&amp;gt; integrand = @(tt) sqrt(ppval(dppx,tt).^2 + ppval(dppy,tt).^2);&lt;br&gt;
&amp;gt; arc_length = quadgk(integrand,0,1);&lt;br&gt;
&amp;gt; s = linspace(0,arc_length,n);&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; inv_arc_len = @(arc,est) fzero(@(u)(quadgk(integrand,0,u)) - arc,est);&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; t2 = zeros(1,n);&lt;br&gt;
&amp;gt; t2(1) = inv_arc_len(s(1),0);&lt;br&gt;
&amp;gt; for i = 2:n&lt;br&gt;
&amp;gt;     t2(i) = inv_arc_len(s(i),t2(i-1));&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; x2 = ppval(ppx,t2);&lt;br&gt;
&amp;gt; y2 = ppval(ppy,t2);&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; function dpp = pp_deriv(pp)&lt;br&gt;
&amp;gt; % pp_deriv: derivative of piecewise polynomial (pp)&lt;br&gt;
&amp;gt;  &lt;br&gt;
&amp;gt; dpp = pp;&lt;br&gt;
&amp;gt; n = pp.order;&lt;br&gt;
&amp;gt; dpp.coefs = bsxfun(@times,n-1:-1:1,pp.coefs(:,1:n-1));&lt;br&gt;
&amp;gt; dpp.order = n - 1;&lt;br&gt;
&amp;gt; -------------------------------------------------------------&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Simply pass in your x and y vectors and the number of desired output &lt;br&gt;
&amp;gt; points and get back your new x and y vectors.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; -- &lt;br&gt;
&amp;gt; Doug Schwarz&lt;br&gt;
&amp;gt; dmschwarz&amp;ieee,org&lt;br&gt;
&amp;gt; Make obvious changes to get real email address.</description>
    </item>
    <item>
      <pubDate>Mon, 10 Nov 2008 18:38:30 -0500</pubDate>
      <title>Re: equally spaced data points over a curve</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974#610116</link>
      <author>Doug Schwarz</author>
      <description>[top posting repaired]&lt;br&gt;
&lt;br&gt;
In article &amp;lt;gf9sur$r89$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;nbsp;&quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt; Doug Schwarz &amp;lt;see@sig.for.address.edu&amp;gt; wrote in message &lt;br&gt;
&amp;gt; &amp;lt;see-AE3628.11371810112008@news.frontiernet.net&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; In article &amp;lt;gf9fl8$4kh$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;gt; &amp;gt;  &quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Hi, &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; I have plotted a curve which connects up some data points. The curve is &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; not a &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; straight line.&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; I would like to compute a new set of data points from the plotted curve, &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; but &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; equally spaced over the length of the curve. The number of points would &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; be &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; specified which would control the resolution. &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Does anyone know how I could do this? If you need any more information &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; please &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; ask. Thanks.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Here's something I plan on contributing to the FEX when I get a chance &lt;br&gt;
&amp;gt; &amp;gt; to clean it up and document it.  It's not especially fast, but if you &lt;br&gt;
&amp;gt; &amp;gt; already have x and y in functional form it could be faster.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; ----------------- linspacearc.m ---------------------------&lt;br&gt;
&amp;gt; &amp;gt; function [x2,y2] = linspacearc(x,y,n)&lt;br&gt;
&amp;gt; &amp;gt; m = length(x);&lt;br&gt;
&amp;gt; &amp;gt; t = linspace(0,1,m);&lt;br&gt;
&amp;gt; &amp;gt; ppx = spline(t,x);&lt;br&gt;
&amp;gt; &amp;gt; ppy = spline(t,y);&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; dppx = pp_deriv(ppx);&lt;br&gt;
&amp;gt; &amp;gt; dppy = pp_deriv(ppy);&lt;br&gt;
&amp;gt; &amp;gt; integrand = @(tt) sqrt(ppval(dppx,tt).^2 + ppval(dppy,tt).^2);&lt;br&gt;
&amp;gt; &amp;gt; arc_length = quadgk(integrand,0,1);&lt;br&gt;
&amp;gt; &amp;gt; s = linspace(0,arc_length,n);&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; inv_arc_len = @(arc,est) fzero(@(u)(quadgk(integrand,0,u)) - arc,est);&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; t2 = zeros(1,n);&lt;br&gt;
&amp;gt; &amp;gt; t2(1) = inv_arc_len(s(1),0);&lt;br&gt;
&amp;gt; &amp;gt; for i = 2:n&lt;br&gt;
&amp;gt; &amp;gt;     t2(i) = inv_arc_len(s(i),t2(i-1));&lt;br&gt;
&amp;gt; &amp;gt; end&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; x2 = ppval(ppx,t2);&lt;br&gt;
&amp;gt; &amp;gt; y2 = ppval(ppy,t2);&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; function dpp = pp_deriv(pp)&lt;br&gt;
&amp;gt; &amp;gt; % pp_deriv: derivative of piecewise polynomial (pp)&lt;br&gt;
&amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; dpp = pp;&lt;br&gt;
&amp;gt; &amp;gt; n = pp.order;&lt;br&gt;
&amp;gt; &amp;gt; dpp.coefs = bsxfun(@times,n-1:-1:1,pp.coefs(:,1:n-1));&lt;br&gt;
&amp;gt; &amp;gt; dpp.order = n - 1;&lt;br&gt;
&amp;gt; &amp;gt; -------------------------------------------------------------&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Simply pass in your x and y vectors and the number of desired output &lt;br&gt;
&amp;gt; &amp;gt; points and get back your new x and y vectors.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks for your code Doug, however, it doesn't do what I want. Your code &lt;br&gt;
&amp;gt; computes points over the curve equally spaced along the x axis. What I want &lt;br&gt;
&amp;gt; is to compute points over the curve equally spaced along the curve.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; My curve has regions of zero gradient and regions of much steeper gradient. I &lt;br&gt;
&amp;gt; want the distance between each set of two points to be the same over the &lt;br&gt;
&amp;gt; length of the curve.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Do you know how your code could be edited to enable this? Thanks for your &lt;br&gt;
&amp;gt; help so far.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
No, it does exactly what you asked for, but it is possible that your &lt;br&gt;
specific data tricks it up somehow or makes this not obvious.  In &lt;br&gt;
particular, it is quite easy to be fooled if you are judging this &lt;br&gt;
visually and you haven't set the axes to have equal scaling in the X and &lt;br&gt;
Y directions (use &quot;axis equal&quot;).  If you can't seem to get it to work &lt;br&gt;
please post or send me as small an example as possible and I would be &lt;br&gt;
glad to take a look at it.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Doug Schwarz&lt;br&gt;
dmschwarz&amp;ieee,org&lt;br&gt;
Make obvious changes to get real email address.</description>
    </item>
    <item>
      <pubDate>Mon, 10 Nov 2008 22:53:02 -0500</pubDate>
      <title>Re: equally spaced data points over a curve</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238974#610182</link>
      <author>Dave Brackett</author>
      <description>Doug Schwarz &amp;lt;see@sig.for.address.edu&amp;gt; wrote in message &amp;lt;see-1B4CC7.13383010112008@news.frontiernet.net&amp;gt;...&lt;br&gt;
&amp;gt; [top posting repaired]&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; In article &amp;lt;gf9sur$r89$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;gt;  &quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Doug Schwarz &amp;lt;see@sig.for.address.edu&amp;gt; wrote in message &lt;br&gt;
&amp;gt; &amp;gt; &amp;lt;see-AE3628.11371810112008@news.frontiernet.net&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; In article &amp;lt;gf9fl8$4kh$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; Hi, &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; I have plotted a curve which connects up some data points. The curve is &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; not a &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; straight line.&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; I would like to compute a new set of data points from the plotted curve, &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; but &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; equally spaced over the length of the curve. The number of points would &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; be &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; specified which would control the resolution. &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; Does anyone know how I could do this? If you need any more information &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; please &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; ask. Thanks.&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Here's something I plan on contributing to the FEX when I get a chance &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; to clean it up and document it.  It's not especially fast, but if you &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; already have x and y in functional form it could be faster.&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; ----------------- linspacearc.m ---------------------------&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; function [x2,y2] = linspacearc(x,y,n)&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; m = length(x);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; t = linspace(0,1,m);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; ppx = spline(t,x);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; ppy = spline(t,y);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; dppx = pp_deriv(ppx);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; dppy = pp_deriv(ppy);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; integrand = @(tt) sqrt(ppval(dppx,tt).^2 + ppval(dppy,tt).^2);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; arc_length = quadgk(integrand,0,1);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; s = linspace(0,arc_length,n);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; inv_arc_len = @(arc,est) fzero(@(u)(quadgk(integrand,0,u)) - arc,est);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; t2 = zeros(1,n);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; t2(1) = inv_arc_len(s(1),0);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; for i = 2:n&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;     t2(i) = inv_arc_len(s(i),t2(i-1));&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; end&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; x2 = ppval(ppx,t2);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; y2 = ppval(ppy,t2);&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; function dpp = pp_deriv(pp)&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; % pp_deriv: derivative of piecewise polynomial (pp)&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; dpp = pp;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; n = pp.order;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; dpp.coefs = bsxfun(@times,n-1:-1:1,pp.coefs(:,1:n-1));&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; dpp.order = n - 1;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; -------------------------------------------------------------&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Simply pass in your x and y vectors and the number of desired output &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; points and get back your new x and y vectors.&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; Thanks for your code Doug, however, it doesn't do what I want. Your code &lt;br&gt;
&amp;gt; &amp;gt; computes points over the curve equally spaced along the x axis. What I want &lt;br&gt;
&amp;gt; &amp;gt; is to compute points over the curve equally spaced along the curve.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; My curve has regions of zero gradient and regions of much steeper gradient. I &lt;br&gt;
&amp;gt; &amp;gt; want the distance between each set of two points to be the same over the &lt;br&gt;
&amp;gt; &amp;gt; length of the curve.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Do you know how your code could be edited to enable this? Thanks for your &lt;br&gt;
&amp;gt; &amp;gt; help so far.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; No, it does exactly what you asked for, but it is possible that your &lt;br&gt;
&amp;gt; specific data tricks it up somehow or makes this not obvious.  In &lt;br&gt;
&amp;gt; particular, it is quite easy to be fooled if you are judging this &lt;br&gt;
&amp;gt; visually and you haven't set the axes to have equal scaling in the X and &lt;br&gt;
&amp;gt; Y directions (use &quot;axis equal&quot;).  If you can't seem to get it to work &lt;br&gt;
&amp;gt; please post or send me as small an example as possible and I would be &lt;br&gt;
&amp;gt; glad to take a look at it.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; -- &lt;br&gt;
&amp;gt; Doug Schwarz&lt;br&gt;
&amp;gt; dmschwarz&amp;ieee,org&lt;br&gt;
&amp;gt; Make obvious changes to get real email address.&lt;br&gt;
&lt;br&gt;
Ah yes, you are right, sorry about that - i didn't have my axes equally scaled. once I set that the code works fine. thanks a lot for your help.</description>
    </item>
  </channel>
</rss>

