본문 바로가기

컴퓨터 & 프로그래밍

매트랩 팁

1. 전역변수의 설정.

global 을 사용하여 정의해 주면 된다. 매트랩에는 변수를 미리 정의한다는 개념이 거의 없는 듯 하지만 이것은 예외다. 특이한 점은 두 가지다. 

ㄱ. 변수의 정의는 함수 안에서 한다.

ㄴ. global 을 사용하여 정의된 변수를 다른 곳에서 사용하기 위해서는 사용 전에 한번 더 '정의' 해 주어야 한다. 이름이 같다면 같은 변수로 간주된다.


ex. function A

global a;

a =3;

end


function B

global a;

disp(a);

end


ref. http://engi-agora.tistory.com/43


2. 이미 그린 plot 위에다 그래프를 하나 더 그릴때

    hold on

    또는

    hold (axes_handle, 'on')


    특정핸들을 지정해 주지 않으면, 여러 개의 object들을 사용하고 있을 때에 오류가 날 수도 있다. 가능하면 핸들을 지정해서 on off를 해 주는 것이 좋을 듯 하다.


3. plot에서 특정 영역  highlight

 - 영역 그래프를 그리는 area 함수를 사용하여 아래쪽 위쪽을 각각 색칠하고 투명하게 바꾼다

h = area([range_start range_end], [ymax ymax]);

            set(h,'FaceColor',[0.0,.5,.5]);

            set(h,'EdgeColor','none');

            set(get(h,'children'),'FaceAlpha',0.4);

if ymin<0

h = area([range_start range_end], [ymin ymin]);

            set(h,'FaceColor',[0.0,.5,.5]);

            set(h,'EdgeColor','none');

            set(get(h,'children'),'FaceAlpha',0.4);

end


4. Handle이 valid 한지 아닌지 체크하는 함수

ishandle (h)


5. 소팅 함수

sort 함수는 각 행이나 열의 값을 따로따로 분리된 것으로 보고 sorting 시에 섞어 버리기 때문에, (하나의 row가 묶여진 값인) 신호처리/패턴인식 등에 사용할 때에는 별 쓸모가 없다. sortrow 함수를 쓰면 편하게 사용할 수 있다.


result_data = sortrow(data, column_index_to_sort)


6. handle을 사용하여 x/y label 변경하기

일반적으로는 xlabel /ylabel 함수를 쓰면 되지만, 가끔 꼭 핸들을 써 줘야 하는 경우가 있다.

xlabel이 axes의 일반 property 가 아니라서 (children 으로 잡혀 있는 듯....) 아래와 같이 해줘야 함


set(get(handles.axes,'XLabel'),'String',str);


7. Figure를 고해상도 jpeg 파일로 저장하기

-set 함수와 print 함수를 사용 (width, height는 inch 단위. r100은 인치당 100px를 의미)


plot(1:10) % Example graph

set(gcf,'PaperUnits','inches','PaperPosition',[0 0 width height])

print -djpeg filename.jpg -r100

출처: http://www.mathworks.com/matlabcentral/answers/102382-how-do-i-specify-the-output-sizes-of-jpeg-png-and-tiff-images-when-using-the-print-function-in-mat