2012-04-02 3 views
0

정말이 질문에 대한 간단한 답이 있어야한다는 것을 알고 있습니다 만, 나는 찾을 수없는 것 같습니다. (아마도 내가 틀린 용어를 검색하고있는 것 같아요.) 플롯 (x, 데이터) 함수를 사용하여 Matlab에서 일부 데이터를 플로팅하고 있습니다. y는 어떤 경우 0Matlab에서 플롯의 x 절편을 찾는 방법

을 =

나는 지점 (들) 즉, 라인의 x 절편 (들)을 찾으려면, 그것은 데이터 벡터하지 않는 것을 할 수있다 실제로는 0과 같은 값을 포함하므로 데이터의에있는 요소의 색인을 0으로 찾은 다음 x 벡터에서 해당 요소를 찾는 것뿐입니다. 내가 말했듯이

, 그것은 정말 간단한 문제가 있고 난 matlab에 몇 가지 내장 기능 ...

여러분의 도움에 감사드립니다 이미 있다고 생각 것입니다.

+0

'y'가 정확히 0 인 점이없는 경우 가장 가까운 점을 y == 0으로 지정 하시겠습니까? 아니면 가장 가까운 점 사이를 보간하거나 전체 선 계열을 통과 할 수 있습니까? – yuk

+0

@yuk 나는 항상 x- 절편과 교차하는 데이터를 가지고있다. 따라서 벡터 자체가 0 값을 갖지는 않지만, Matlab이 플롯 한 선이 x 축과 교차하는 지점을 얻고 싶습니다. – Rachel

답변

2

당신은 X 당신이 INTERP1 기능을 사용할 수 있습니다 축 주위로 보간이 개 가장 가까운 점 사이의 X 절편을 찾으려면 :

x0 = interp1(y,x,0); 

그것은 xy가 일정하게 증가하는 경우/감소 작동합니다.

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 절편이 없다고하더라도 여전히 가까운 값을 얻을 수 있습니다. 이 코드의 결과는 조건을 만족시키는 인덱스입니다.

관련 문제