【发布时间】:2012-09-18 15:33:51
【问题描述】:
考虑以下示例:
time = [733774,733774,733775,733775,733775,733776,733776];
depth = [0,10,0,5,10,0,10];
d = [1,1.3,1,2.5,2.5,1,1.2];
data = horzcat(time',depth',d');
dz = 1;
我在这里分别进行了三天的测量。第一天在 2 个不同的深度进行了 2 次测量,第二天在 3 个深度进行了 3 次测量,第三天在 2 个深度进行了 2 次测量。
我想生成一个新变量“newData”,它对数据中的值进行线性插值(interp1)。但是,我只想在任何给定日期的测量次数超过 2 时执行此操作。因此,对于上面的示例,这仅适用于 733775。在这里我想进行深度测量并增加垂直分辨率,例如
newDepth = min(depth):dz:max(depth);
但仅在测量次数超过 2 的情况下执行此操作。因此,我所描述的结果应该是:
733774 0
733774 10
733775 0
733775 1
733775 2
733775 3
733775 4
733775 5
733775 6
733775 7
733775 8
733775 9
733775 10
733776 0
733776 10
加上来自 'data(:,3)' 的插值。
实现这一目标的最佳方法是什么?
【问题讨论】:
-
输出中没有 733775 的深度 0。这是故意的吗?如果某一天的深度为
[1 3 1]怎么办?如果他们是[1 1 4]怎么办?如果他们是[1 4 5]怎么办?在这些情况下,插值应该如何? -
它应该是从最小深度到最大深度的插值,间隔为 1。此外,在我的示例中,深度不会是 [1 3 1]。更正了示例。谢谢
标签: matlab