2012-07-11 3 views
0

나는 각각 다른 하나의 핸들에 대해 알고있는 2 개의 뷰로 구성된 matlab 애플리케이션을 만들었습니다. 기본보기는 두 번째보기를 시작하고 핸들을 가져옵니다.다른 MATLAB 뷰에서 호출 된 subplot 함수

그러면 기본보기에서 subplot() 함수가 호출되고 이미지는 imshow()을 사용하여 표시됩니다. 내가하고 싶은 것은 subplot()imshow() 함수를 사용하여 이미지의 여러 세부 정보를 두 번째보기에 표시하는 것입니다.

두 번째보기의 핸들을 사용하여 두 번째보기에서 정의 된 함수를 기본보기에서 호출합니다.이 함수는 subplot() 및 imshow() 함수를 호출하여 자세한 정보를 제공합니다.

메인보기의 초기 이미지가 사라지고 세부 정보로 바뀌는 현상이 발생합니다. 세부 정보가 두 번째보기에 표시되는 동안 기본보기에 이미지가 표시되도록 다른 사람이 조언을 줄 수 있습니까?

+2

문제를 설명하는 짧은 코드를 게시하십시오. 우리가 작업 할 코드가있을 때 도움을주는 것이 더 쉽습니다. – tmpearce

+0

두 개의 새 줄을 사용하여 무시 된 한 줄만 표시하지 않고 글의 단락을 나타낼 수 있습니다. 또한 [게시물에 서명 또는 태그 라인을 추가하지 마십시오.] (http://stackoverflow.com/faq#signatures). '\'backticks \'로 인라인 코드를 나타낼 수도 있습니다. – meagar

답변

0

아마도 이미지 또는 데이터를 배치 할 축을 지정해야합니다. imshow 명령을 사용하면 Parent 매개 변수가있는 이미지 표시에 사용할 축을 지정할 수 있습니다.

subplot이 만든 축에 핸들을 반환한다는 사실과 결합하십시오.

h = subplot(m,n,i) %# create a subplot axes 
imshow(img,'Parent',h) %# display an image in the previously created axis 

당신은 당신이 이미지가 imshow에 대한 호출에서 처리한다는 점에서 사용 표시 할 축에 핸들을 검색 할 필요가 코드의 두 세트 사이에 정보를 전달할 수 있습니다 가정. 당신이 당신이 당신의 그림 각 창에 대한 핸들을 알고 가정 다음을 수행 할 수있는 첫 번째 그림의 일부 이미지를 표시 할 때 여기에 이제 예를 들어

hFig = figure; 
h(1) = subplot(2,2,1) 
h(2) = subplot(2,2,2) 
setappdata(hFig,'axisHandles',h) %# stores the axes handles in appdata of the figure 
.... 

입니다.

h=getappdata(hFig,'axisHandles') 
imshow(img,'Parent',h(1)) 
+0

나는 이것이 가까운 곳에 있다고 내기는하지만 ... 문제는 한 레벨 위로 올라갈 수 있습니다 :'subplot'에 대한 호출은 현재 그림과 함께 작동 할 것이므로 "주 윈도우"플롯이 대체되고있는 이유입니다. 적절한 그림은'subplot'을 호출하기 전에'figure (fig_handle)'로 현재 만들 수 있습니다. – tmpearce

+0

@tmpearce 의견을 보내 주셔서 감사합니다. OP가 imshow에서 parent 매개 변수를 사용하여 이미지를 표시 할 축을 지정하는 방법을 정리하는 설명을 추가했습니다. – Azim