私は同じ期間に多くのデータセットを持ち、タイムステップは300秒です。観察期間の終了前に終了を設定します(ここでは、私が3000秒に0に切り捨てられました)残りのスペースにNaNを持っている:MATLAB内のデータポイント間の独立変数を解決します
x = [0;300;600;900;1200;1500;1800;2100;2400;2700;3000];
y(:,1) = [4.65;3.67;2.92;2.39;2.02;1.67;1.36;1.07;NaN;NaN;NaN];
y(:,2) = [4.65;2.65;2.33;2.18;2.03;1.89;1.75;1.61;1.48;1.36;1.24];
y(:,3) = [4.65;2.73;1.99;1.49;1.05;NaN;NaN;NaN;NaN;NaN;NaN];
私は、各データセットがどうなるか一度に知っていただきたいと思いますy = 2.5
私は最初に最も近いyの値を2.5に見いだしてから関連する時間を使ってみましたが、これはあまり正確ではありません(ドットすべて同じ水平線に当てるべきである):
ybreak = 2.5;
for ii = 1:3
[~, index] = min(abs(y(:,ii)-ybreak));
yclosest(ii) = y(index,ii);
xbreak(ii) = x(index);
end
Iは、データポイント間の線形補間を行う試み、その後、Y = 2.5でxについて解くことが、この作業を行うことができなかった。
まず私は(それNaNを除去行うための簡単な方法がなければならないように思える):?
for ii = 1:3
NaNs(:,ii) = isnan(y(:,ii));
for jj = 1:length(x);
if NaNs(jj,ii) == 0;
ycopy(jj,ii) = y(jj,ii);
end
end
end
次にしようとしたフィッティング:
for ii = 1:3
f(ii) = fit(x(1:length(ycopy(:,ii))),ycopy(:,ii),'linearinterp');
end
とGET次のエラーメッセージ:私は(ちょうど1つのデータセットのために)ループの外でフィッティングしてみてください
Error using cfit/subsasgn (line 7)
Can't assign to an empty FIT.
は、それが正常に動作します:
f = fit(x(1:length(ycopy(:,1))),ycopy(:,1),'linearinterp');
f =
Linear interpolant:
f(x) = piecewise polynomial computed from p
Coefficients:
p = coefficient structure
しかし、私は、まだFを解決することはできません(x)= 2.5とし、y = 2.5の時間を求める。
syms x;
xbreak = solve(f(x) == 2.5,x);
Error using cfit/subsref>iParenthesesReference (line 45)
Cannot evaluate CFIT model for some reason.
Error in cfit/subsref (line 15)
out = iParenthesesReference(obj, currsubs);
oに関するアドバイスや考えこれに対するアプローチは非常に高く評価されるだろう。私は多くの多くのデータセットでそれを行うことができる必要があります。これらのデータセットの数はそれぞれNaN値の数が異なります。