본문 바로가기

매트랩(Matlab)/매트랩 질문모음5

[Matlab / 매트랩] 데이터가 3차원 좌표점으로 주어져 있을 때, mesh형태의 그래프 그리기 Q. 3차원 좌표들만을 (예 : (1,2,3), (1,2,4), (3,5,1), (3,5,2)) 포함하는 3차원 면을 그릴려고 하는데 어떻게 해야 하나요? 3차원 좌표가 구해져 있지만, 데이터를 가지고서 plot3 로 해당 좌표를 표시하여 나타내니 입체처럼 보이지 않아서요. 어떻게 해야 mesh형태처럼 면으로 된 그래프를 그릴 수 있을까요? A. griddata명령어를 사용하시면 됩니다. 기본적으로 3차원 좌표들을 가지곤 plot3명령어를 써야 합니다만, 이 데이터를 interpolation해서 그래프의 형태를 예측하여 mesh그래프를 그릴 수 있게 할 수 있습니다. 즉, 3차원 좌표를 가지고, 그래프의 식을 도출해 내서, 그 사이를 메꾸어 내는거죠. (정확하게 말하자면 식을 fitting하는 거죠. 수.. 2010. 4. 27.
[Matlab / 매트랩] 실시간으로 그래프 업데이트하기 Q. 그래프를 실시간으로 그리고 싶은데 어떻게 해야 하나요? 그래프에 새로운 좌표를 실시간으로 찍어주고 싶은데, 어떻게 해야 하나요? A. drawnow를 사용하시면 됩니다. 실시간으로 통신을 할때나, 혹은 데이터의 처리 과정을 보기 위해 실시간으로 그래프를 표시해야 될 때가 있습니다. 질문의 이해를 위해 실시간으로 그래프가 그려지는 동영상을 첨부하였습니다. 이런식으로 그래프의 창(figure)은 유지한 채로, 새로운 데이터를 그 창에 찍어주는 거죠. 쉽게 생각해보았을 때, plot이 된 그래프에 hold on을 해서 다시 plot을 하는 과정을 반복해보면 당연히 될것이라는 예측을 할 수 있습니다만 for i=1:1000 plot(i,i,'b.'); hold on end 이런식으로 코딩을 직접 해보면 새.. 2010. 4. 27.
[Matlab / 매트랩] 그래프 눈금 조정하기 Q. 그래프 눈금을 조정하고 싶은데 어떻게 해야 하나요? 그래프를 그리면 x축을 -5~5까지의 범위로 값을 1이나 0.5 크기로 줬는데, 그래프 상에서 x축은 -5,0,5만 숫자로 표시되더라고요, 실제 그래프는 1이나 0.5단위로 점을 찍는데, 축에 표시되는 숫자가 -5,0,5뿐이라 좀 이상해서요. 그래프 눈금을 조정가능한가요? A. 예를들어 다음과 같은 그래프를 그렸다고 해봅시다. x=[-10:0.1:10]; y=x.^2+3; plot(x,y) 이때 결과를 보면 x축은 2단위로 눈금이 표시되어 있으며, y축은 20단위로 눈금이 표시되어 있습니다. 이 눈금의 간격을 원하는대로 조정할 수 있는데, 이때 사용되는 명령어가 set(gca,'XTick',눈금)입니다. 예컨데 -10~10까지 5의 간격으로 표시하.. 2010. 4. 5.
[Matlab / 매트랩] 극좌표계(polar coordinate) 그래프 그리기 Q. 2차 극 좌표계 데이터(r,theta)를 가지고 있는데 어떻게 그래프를 그려야 하나요? 기본적으로 plot명령어는 cartesian coordinate, 즉 직교 좌표계의 데이터가 주어졌을 때 그래프를 그려줍니다. 하지만 극 좌표계 데이터(거리, 각도)로 주어졌을 때는 어떻게 그래프를 그려야 할까요? 이때는 polar(각도,거리) 라는 함수를 써 주시면 됩니다. 예를들어 r^2 = 4*cos(theta), theta는 0~2pi까지의 범위의 그래프를 그리고 싶을 땐, theta = 0:0.01:2*pi; r1 = sqrt(4.*cos(theta)); r2=-sqrt(4.*cos(theta)); polar(theta, r1) hold on polar(theta,r2) 과 같은 형식으로 그려주면 됩니다.. 2010. 2. 3.