我如何适应两个数据集?
48视图(30天)
显示旧的评论
嘿每个人
我有一个问题关于一个实验数据。
我有两个数据集,一个是,另一个是测量的引用。
测量的数据集有一个改变x,每个测量不同的转变。
说它很明显我想适合测量数据集f (x + c)的引用数据集表示f (x)和在每个测量发现变量“c”。注:数据集不是一个函数,而是一对{X Y(我),(我)}的参考和测量。
更多的小细节:
参考将是一个高分辨率的测量(小间距,大量的点)和测量将有一个更高的点间距和较小的点。
x轴的测量范围和引用可能有所不同。
谢谢你的帮助
答案(2)
约翰D 'Errico
2023年5月23日11:23
编辑:约翰D 'Errico
2023年5月23日在十一28
这是一个典型的校准问题。你有两条曲线,其中一个必须(翻译)转移到另一个。在某些情况下,还有一个比例因子在x。当然,有时有一个y转变或规模。
这听起来像是你所表示的就是翻译。
在任何情况下,问题是非线性的。你需要选择一个简单的模型参考曲线。我的建议是花键。确保符合是单调的。如果有必要,你可能需要参考曲线光滑,迫使它单调。为此目的的最佳工具可能是喜欢我的SLM工具箱,(发现在文件交换免费下载。我会发布一个链接)。
您可能还希望确保参考曲线涵盖了广泛的领域。你可能需要推断。再一次,单调性可能是重要的。因为你不显示任何数据,我将做一些。
xref = linspace (-20、20100);
F = @ (x) (x) /每股pi + 1/2;
yref = F (xref)
情节(xref yref,“b”。)
这是一个平滑和严格单调曲线。这是好的,所以我只会使用一个插值样条。
refspl =花键(xref yref);
现在,假设我有一个第二曲线,从第一个沿着x轴。
1 x =排序(兰特(20日)* 20 - 10);
转变= randn (1) * 5;
y = F (x + shift);
我不知道这种转变是在进步。我可以恢复它,并且将新的曲线转移到目标?假设我不知道F的函数形式本身,只参考曲线上的点。更糟糕的是,新曲线不等距的。
持有在
情节(x, y,“罗”)
持有从
网格在
由于曲线是单调,我将使用一个工具从我的SLM工具箱,slmsolve。
x = 0(大小(x));
为i = 1:元素个数(y);
x (i) = slmsolve (refspl y(我));% slmsolve不是矢量,哦
结束
这是我估计的转变,以及真正的转变
转变= (x - x)中位数;
(转变,转变)
情节(xref yref,“b”。,x, y,“罗”,x +转变,y,“女士”)
传奇(“参考曲线”,“新曲线”,翻译后的)
当然,这个系统中没有噪音,所以估计应该是近乎完美。
如果问题是更复杂的,还有一个规模变化,或线性转移规模y,和一些努力,也可以解决。
如果有噪音问题,参考曲线需要平滑的,SLM工具箱也可以帮助。