대학원 연구/Research

[MATLAB] figure 위치 및 크기 마음대로

소금보자기 2009. 7. 3. 14:35

출처 : Mathworks Hompage

MATLAB 으로 작성하는 과제(3D 그래프)가 있었는데 기본 크기의 figure 때문에 2개의 그래프가 찌그러져 보여서 그것좀 해결해본다고 하다가 결국 과제를 못내고 말았다... 으이그~!!!

뭐 물론 다른 버그 제거하는데도 많은 시간을 소모했다는 것에 대해 부정하진 않겠지만 이 문제만큼 시간을 많이 잡아먹은 다른 문제는 없었다.

뭐 결론은 생성되는 figure 의 크기를 조정하면 된다였는데, 검색 키워드를 resize, size, figure 등등 해봤는데 원하는 것이 나오지 않았다.(정확히 말하면 나온게 원하는건지도 잘 분간이 안되는 경험 수준이다..)

그래도 끈덕지게 찾다가 Mathworks 홈페이지에 있던 글 하나를 찾아서 읽어보게 되었다.
자세한 테크닉은 출처를 참고하고, figure 의 크기를 바꾸는 요점은 출처의 예제처럼 복잡하지도 않았다.

figure 를 생성하는 명령인 figure(1) (또는 그냥 figure) 는 생성되는 figure 의 핸들을 반환한다.
바로 요녀석을 채어다가 set 명령으로 콱 바꿔버리면 되는 것이다.

요것좀 해결해본다고 결국 마감시간 넘겨버린 나에겐 현재 악밖에 남은게 없다...

뭔가 set 으로 바꿀 것은 같았는데 안에 들어갈 property 를 찾지 못해서 무려 한시간 좀 못되는 시간을 소모했다.

잔소리 이만 줄이고 코드를 첨부하자면
fig1 = figure(1);

set(fig1, 'OuterPosition', [3, 270, 840, 420])

설명을 대충 붙이자면
첫 줄은 1번 figure 를 생성해서 그 핸들을 fig1 에 저장하는 것이다. 뭐 figure(1) 대신에 figure 또는 1 대신 다른 숫자를 넣어도 되겠다.
두번째 줄은 그 잘난 figure 의 위치와 크기를 바꿀 수 있는 OuterPosition property 를 바꾸는 명령이다.
set 명령의 세번째 인자는 배열의 형태로 집어넣어야 하며 순서대로 figure 와 화면의 왼쪽 끝과의 거리, figure 와 화면의 아래쪽과의 거리, figure 의 너비, figure 의 높이 이다.

마감시간 1분 넘기고 광분하다가 겨우 조금 잦아들어 정신차리고 쓴 글이라 두서가 없다(원래 못쓰면서 핑계는...).
정식으로 배우지도 않고 진도따라가기에 바쁜 내가 느끼는 점은... 무식이 죄이다...