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には、測定の異なる日に対応する3つのセルがあり、各セルには、newData(:、1)が時間、newData(:、2)が深さ、newData(:、3)が測定値です。 。セルの各深さでの面積を調べたいのですが、さまざまな深さでの面積は変数「Hypso」で指定されます。

どうすればこれを達成できますか?

4

1 に答える 1

0

あなたの問題の定式化は素晴らしいです!ここで必要なものを理解するのは非常に簡単です。必要なのは関数interp1 だけです。の最初の列をHypso深さとして使用し、2 番目の列を面積として使用します。関数のベクトル化機能を使用してinterp1、1 回の呼び出しですべての値を見つけることができます。

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

areaAtDepth =

  Columns 1 through 6

        2000        1000         NaN        1500        1000        2000

  Column 7

        1000

Nan出力の 3 列目に が表示されます。これは、関連付けられている深度0がデータの範囲外、または私が信じているデータのサポート外であるためです。データが範囲外の場合に何をするかを決定する必要があります。または、範囲外であってはならない可能性があるため、エラーをログに記録する必要があります。それはあなた次第です!ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-09-18T15:21:54.467 に答える