在Matlab中绘制参数方程

时间:2011-09-13 20:52:06

标签: matlab plot parameterized

我有两组数据:[t1 ; x][t2 ; y],其中t s在两者的相同范围内,但可能采用不同的值。一个简单的例子:

[t1 ; x] = 
     1     2     4
     1     4    16

[t2 ; y] =
     1     3     5
     1     9    25

这里的基本功能很简单:x = t1.^2y = t2.^2。我的目标是获得xy的情节。由于t所采用的值不相同,因此我不能简单地使用plot(x,y)。例如,从x == y开始,我应该得到一条斜率为1的线,但是plot(x,y)不是直的,并且两条都没有斜率为1。

应用程序比这个简单的例子复杂得多,而且我没有生成数据点的底层函数。数据有时是稀疏的,所以我不能丢弃信息,方法是抛出t1t2之间不相同的点。

我希望Matlab有一些内置函数可以获取两个数据集并提取xy之间的依赖关系,留下t作为一个看不见的参数。谁知道这样的功能?取而代之的是,我愿意接受有关写一篇文章的好方法的建议。

1 个答案:

答案 0 :(得分:2)

我建议使用splines。

鉴于txxtyy,您可以在一段时间内生成xy的图表使用SPLINE命令以下列方式指出timeRange

xx = spline(tx,x,timeRange); %# interpolate x vs time
yy = spline(ty,y,timeRange); %# interpolate y vs time

plot(xx,yy);

如果基础数据有噪声,那么您可能需要使用平滑样条曲线(例如CSAPS),但需要使用曲线拟合工具箱。