1

この質問には本当に簡単な答えがあるはずですが、私はそれを見つけることができないようです。(私はおそらく間違った用語をグーグルで検索していると思います。)

plot(x、data)関数を使用してMatlabでいくつかのデータをプロットしています。

直線のx切片、つまりy=0の点を見つけたいと思います。

場合によっては、データベクトルに実際にはゼロに等しい値が含まれていない可能性があるため、ゼロに等しいデータ内の要素のインデックスを見つけてから、xベクトル。

私が言ったように、それは本当に単純な問題であり、Matlabにはすでにいくつかの組み込み関数があると思います...

ご協力ありがとうございました。

4

3 に答える 3

3

X軸の周りの2つの最も近い点の間の補間としてX切片を見つけたい場合は、INTERP1関数を使用できます。

x0 = interp1(y,x,0);

単調に増加/減少している場合に機能xします。y

于 2012-04-02T21:19:57.757 に答える
0
x=-1.999:0.001:1.999;
y=(x-1).*(x+1); 
plot(x,y) 
hold on
plot(x,zeros(length(x),1),'--r') 
find(abs(y)<1e-3)

したがって、最後の部分では、正確なy切片がなくても、近い値が得られることが保証されます。このコードの結果は、条件を満たすインデックスです。

于 2012-04-02T20:01:22.143 に答える
0

データに線形フィット(1次多項式)を作成すると、フィットした線の傾きとY切片から、X切片を見つけることができます。次に例を示します。

x1 = 1:10;
y1 = x1 + randn(1,10);
P = polyfit(x1,y1,1);
xint = -P(2)/P(1);

傾きとy_intを知りたい場合は、次のようになります。

Slope = P(1);  % if needed 
yint = P(2);   % if need
于 2020-05-08T20:32:49.417 に答える