0

我在水柱的不同深度进行了时间序列的测量。我已将它们分成单独的单元格(供以后使用),并且需要一些帮助来完成以下操作:例如

    time = [733774,733774,733775,733775,733775,733776,733776];
    bthD = [20,10,0,15,10,20,10];
    bthA = (1000:100:1600);
    %Hypsographic
    Hypso = [(10:1:20)',(1000:100:2000)'];
    d = [1,1.3,1,2.5,2.5,1,1.2];
    data = horzcat(time',bthD',d');
    uniqueTimes = unique(time);
    counts = hist(time,uniqueTimes);
    newData = mat2cell(data,counts,length(uniqueTimes));

因此,在 newData 我有三个单元格,它们对应于不同的测量日期,在每个单元格中我有 newData(:,1) 是时间,newData(:,2) 是深度,newData(:,3) 是测量. 我想找出细胞中每个深度的面积,不同深度的面积在变量“Hypso”中给出。

我怎么能做到这一点?

4

1 回答 1

0

你的问题表述非常好!很容易理解你在这里需要什么。您只需要函数interp1。使用 的第一列Hypso,我假设,作为你的深度,第二列作为面积。您可以使用函数的矢量化interp1功能在一次调用中查找所有值:

areaAtDepth = interp1(Hypso(:,1),Hypso(:,2),bthD)

areaAtDepth =

  Columns 1 through 6

        2000        1000         NaN        1500        1000        2000

  Column 7

        1000

您会注意到Nan输出的第三列中的 。这是因为它的相关深度 ,0超出了数据的范围,或者我相信的数据的支持。您需要决定当数据超出范围时要做什么,或者可能永远不应该这样做,因此应该记录一个错误;由你决定!如果您还有其他问题,请告诉我!

于 2012-09-18T15:21:54.467 回答