int*_*ntl 5 arrays integration matlab area
我有两条线,一条直线和一条曲线.两者都有定义行的任意数量的x和y值 - 对于任一行,x和y值的数量都不相同.我试图在曲线坐标和直线坐标之间获得单独的点距离.您可以考虑使用离散集成来更好地了解我正在谈论的内容,类似于以下内容:http://www.scientific-solutions.ch/tech/origin/products/images/calculus_integral.gif
通过添加不同的距离,我会得到该区域.我被卡住的部分是点的实际同步.我可以简单地比较每十个指数的直线和曲线坐标的x和y值,例如因为曲线坐标是时间相关的(因为点不会以一般速率变化).我需要一种方法来同步两组点的实际坐标.我考虑将两组点插值到特定数量的点,但同样,弯曲点集的时间依赖性使得该解决方案无效.
有人可以建议一个很好的方法,概述基础知识吗?我非常感谢你的帮助.
要尝试的代码(伪):
xLine = [value1 value2 ...]
yLine = [value1 value2 ...]
xCurve = [value1 value2 ...]
yCurve = [value1 value2 ...]
xLineInterpolate = %interpolate of every 10 points of x until a certain value. same with yLineInterpolate, xCurveInterpolate and yCurveInterpolate.
Run Code Online (Sandbox Code Playgroud)
然后,我可以从每个数组中获取相同的索引并进行一些代数来获得距离.我担心的是,我的线值以恒定速率增加,而我的曲线值有时不会改变(x和y值具有不同的变化率),有时也会这样.这种插值方法会不会错呢?
如果我理解正确的话,你想知道直线和曲线之间的距离。最简单的方法是执行坐标变换,使直线成为新的 x 轴。在该框架中,曲线的 y 值就是您寻找的距离。
该坐标变换相当于旋转和平移,如下所示:
% estimate coefficients for straight line
sol = [x1 ones(size(x1))] \ y1;
m = sol(1); %# slope
b = sol(2); %# y-offset at x=0
% shift curved line down by b
% (makes the straight line go through the origin)
y2 = y2 - b;
% rotate the curved line by -atan(m)
% (makes the straight line run parallel to the x-axis)
a = -atan(m);
R = [+cos(a) -sin(a)
+sin(a) +cos(a)];
XY = R*[x2; y2];
% the distances are then the values of y3.
x3 = XY(1,:);
y3 = XY(2,:);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |