我有两对曲线,每对都有一个不同时间值(x值)的交点.现在我需要在x方向上均匀地移动每对的一条曲线,直到两个交叉点具有相同的时间值/ x参数:
这些只是示例,您可以为我的所有实际情况假设相同的单调性(但可能是不同的形状),例如在我的示例中.同样颜色的曲线也具有相同的x向量(但不一定等距).在两种颜色(1 =红色和2 =蓝色)x范围之间,元素的数量可以完全不同.
生成的输入曲线:
t1 = linspace(0,3,30);
t2 = linspace(0,5,15);
x1 = t1.^2.*5;
x2 = -t2.^2.*3+50;
y1 = t1.*2;
y2 = t2;
ip_x = InterX([t1;x1],[t2;x2]);
ip_y = InterX([t1;y1],[t2;y2]);
我通过使用函数InterX在File Exchange处计算的交点,它返回交点的x和y值.该示例的预期输出只是猜测来说明我的问题.
我的问题是,如何确定输入和输出之间的时间延迟?
[ t1,x1,y1,t2,x2,y2 ] = findIntersectPair(t1,x1,y1,t2,x2,y2);
我的方法是使用fminsearch,但经过一些迭代后我遇到了问题.
function [ t1,x1,y1,t2,x2,y2 ] = findIntersectPair(t1,x1,y1,t2,x2,y2)
d0 = 0;
[d,dxy] = fminsearch(@findDelay,d0);
function dxy = findDelay( d )
disp(['d =