2013-03-19 3 views
1

내 특정 문제에 대한 도움을 찾고 있습니다.Matlab에서 작업을 수행하기 위해 등고선 플롯에서 임의의 방향을 설정하는 방법

필자는 XYZ 데이터로 생성 된 등고선 도표를 가지고 있습니다. 이 플롯은 다른 것보다 강렬한 두 개의 넓은 피크를 포함합니다.

가장 강한 피크가 Y 축과 정렬되면 각 X 값에서 모든 YZ 곡선의 피팅을 수행 할 수 있습니다. 나는 보통 같은 그래프에 피크 센터를 플롯하기 위해 가우스 끼워 맞춤 (gaussian fit)을한다.

어떤 경우에는 동일한 피팅을 수행해야하지만 Y 축 방향을 따라야합니다 (이 경우 모든 다른 X 값에서 YZ 스캔을 플롯합니다). 그러나 다른 임의의 방향을 따라야합니다. 순간 내가 찾은 유일한 방법에 대한

은 다음과 같다 : Y 축에 정렬되지 않은 윤곽 플롯 -plot 및 위치 -if 가장 강렬한 피크 의 위치를 ​​찾은 다음 모든 datas를 회전 플롯을 다시 윤곽 모든 X 값 에 대한 YZ 가우스 맞는 -perform -

이가 원래의 윤곽 플롯에 선으로 XY 위치 -plot 원래 플롯 으로 돌아갑니다 결과 XY 위치를 회전 꽤 길고 많은 메모리가 필요합니다. 좀 더 우아하고 빠른 방법이 있는지 알고 싶습니다. 당신의 도움에 대한

덕분에

데이비드

+0

죄송합니다. 나는 빨리 대답했습니다. 대답은 매우 유용하지만 아직 뭔가 부족합니다. 임의의 선의 각 수직 방향을 따라 데이터를 추출하여 해당 선을 적용하고 싶습니다. 내 라인의 (x1, y1) (x2, y2) 포인트를 알고 있다면 (Master line이라고 부름)이 Master 라인에서 수직선을 따라 데이터를 쉽게 얻을 수있는 방법이 있어야합니다. – Dav

답변

0

난 당신이 적합을 위해 (X, Y, Z)에서 어떤 임의의 선을 따라 데이터를 데이터를 추출 할 가져 가라. 등고선 플롯에는 데이터의 일부만 표시되며 z(x,y) 데이터는 imagesc 등으로 표시 할 수 있습니다. 데이터는 두 개의 점 (x1,y1) -> (x2,y2)에 의해 정의 된 선을 따라 표시한다고 가정 해보십시오. 라인의 eq에 따르면, y=a*x+b 경사면 a(y2-y1)/(x2-x1)b=y1-a*x1입니다. 예를 들어, I 선택할 것이다 (X는, Y)는 다음과 같은 형상으로 좌표

m=peaks(100); 
x1=11 ; x2=97; 
y1=66; y2=40; 

따라서 광고 파라미터는 :

a=(y2-y1)/(x2-x1); 
b=y1-a*x1; 

데이터 및 종료 지점을 생성 라인은 :

x=x1:x2; 
y=round(a*x+b); 

선형 색인을 사용하여 적절한 (x, y)의 요소를 선택

012 3,516,
ind=sub2ind(size(m),y,x) 

줄거리 :

subplot(2,1,1) 
contour(m,10); hold on 
line([x1 x2],[y1 y2],'Color',[1 0 0]); 

subplot(2,1,2) 
plot(m(ind)) 

enter image description here

당신은 지금 당신의 기능에 맞게 vec=m(ind)를 사용할 수 있습니다.

+0

죄송합니다. 나는 빨리 대답했습니다. 대답은 매우 유용하지만 아직 뭔가 부족합니다. 임의의 선의 각 수직 방향을 따라 데이터를 추출하여 해당 선을 적용하고 싶습니다. 내 라인의 (x1, y1) (x2, y2) 포인트를 알고 있다면 (Master line이라고 부름)이 Master 라인에서 수직선을 따라 데이터를 쉽게 얻을 수있는 방법이 있어야합니다. – Dav

+0

이 답은 ** 임의의 두 점'(x1, y1) -> (x2, y2)'사이에 정의 된 행을 다룹니다. 나는 수직선 (무한 경사)을 다루지 않을 것이고, 이것은 더 많은 선을 필요로하지만, 당신이 그것을 처리 할 수있을 것이라 확신한다. 수직선을 얻으려면 http://stackoverflow.com/questions/1811549/perpendicular-on-a-line-from-a-given-point – bla

+0

을 참조하십시오. 답장을 보내 주셔서 감사합니다. 수직선의 경우 각 Y 값을 따라 XZ 선을 살펴 봐야합니다. – Dav

관련 문제