이 포스팅을 보시는 분들이라면 다들 아시겠지만 MATLAB 의 그래픽 표현 능력은 정말 뛰어난 편입니다. 신호 처리를 비롯해서 많은 분야에서 그래프를 사용하고 있고~ 그런 의미에서 MATLAB 은 정말 큰 장점이 있는 툴 인 것 같습니다.

MATLAB 에서 하나의 Figure 창에 다양한 그래프를 나타내기 위해서 아래 포스팅에서 소개했던~ subplot 과 같은 함수를 사용하곤 하는데~

https://iamaman.tistory.com/101

오늘은 axis 를 사용하여 그래프 안에 조그맣게 또 다른 그래프를 그리는 방법에 대해서 소개를 하려 합니다.

샘플 코드는 아래와 같습니다.

그래프 안에 조그만 또 다른 그래프를 그리기 위해서~ axes() 함수를 사용하여 작은 그래프가 들어갈 위치를 잡아주고~ 바깥에 있는 큰 그래프와 구분해 주기위해 box on 을 했습니다.

이후에 그래프를 그리면 아래 그림과 같이 그래프 안에 또 다른 작은 그래프가 들어가는 것을 확인할 수가 있습니다.




아래 포스팅에서 Wolfram-Alpha 라는 사이트를 통해 인수분해나 그래프 그리는 방법등에 대해 알아봤는데요~



오늘은 추가적으로 미분, 적분을 편하게 도와주는 사이트 들을 조금 소개 드리려 합니다.

  • 적분 사이트로는 아래 주소의 사이트를 발견 했는데


간단하게 다음과 같이 수식을 입력하고



Go 버튼을 누르면 이렇게 결과 수식이 나오더군요.


위 사이트는 정말 수학 공부하기도 좋을것 같은게 수식 밑에 있는 Show steps 버튼을 누르면 다음과 같이 수식 전개 과정도 나옵니다.



마지막에는 그래프도 나오고 아래 포스팅에서 소개 드렸던 maxima 라는 툴과의 비교 그래프도 그려 주므로 더욱 믿을 수 있는 것 같네요.


  • 미분 사이트로는 아래 주소의 사이트가 있습니다.


위 적분 사이트와 비슷한거 보면 같은데서 만든것 같네요.

역시 마찮가지로 수식을 입력한 후에 Go 버튼만 누르면 결과 수식이 나오고~


Show steps 버튼을 누르면 수식 전개 과정도 나옵니다..... 정말 좋네요.



위에 두 사이트는 export 버튼을 누르면 아래 그림과 같이 LaTeX, Maxima, Online calculators 수식으로도 export 할 수 있게 해 줍니다.


요즘 수포자 많다고 하는데 ..... 사실 요즘은 컴퓨터와 인터넷만 있으면 수학 공부하기 정말 좋은 시대라는 생각이 듭니다.

MATLAB 을 사용하여 그래프를 그리는 경우 축을 반전해서 보는게 편한 경우가 종종 있습니다.

이런 경우에는 두가지 방법을 사용할 수 있습니다. 



아래 예에 대해 축을 반전하고 싶은 경우


x=1:0.1:10;
y=sin(x);

plot(x,y)
grid on


  • 플롯 툴을 사용하여 변경하는 방법

플롯 툴 아이콘을 클릭하여  플롯 툴을 실행 합니다. 



다음으로 그래프의 Axis 선택한 이후에 반전하고 싶은 축을 선택하고 반전에 체크를 하고 마지막으로 플롯 툴 숨기기를 클릭 합니다.
위 그림과 비교해보면 X 축의 값이 좌우가 바뀐것을 확인 할 수 있습니다.
Y 축 또는 Z 축 값을 반전하고 싶은 경우라면 아래 그림에서 X축 Y축  탭을 선택한 이후에 반전을 체크해 주면 되겠죠~ 

  • 코드 상에서 변경하는 방법

코드에서 반전 설정하는 방법은 아래와 같습니다.

x=1:0.1:10;
y=sin(x);

figure1 = figure; % 그래프 핸들 설정
axes1 = axes('Parent',figure1); % 축 설정
plot(x,y)
grid on
set(axes1,'XDir','reverse'); % axes1 축 반전, 그래프 그리는 코드 뒤에 있어야 함


위 코드에서 주석으로 밝힌 바와 같이 축을 반전 시키는 코드는 그래프 그리는 코드 뒤에 있어야 합니다. Y 축을 반전하고 싶으면 XDir 이라고 된 속성을  YDir 로 변경해 주면 되겠고 Z 축을 반전하고 싶다면 당연히  ZDir 이라고 설정해 주면 됩니다.

X, Y 축을 둘다 반전하고 싶다면 다음과 같이 설정하면 되겠고~ 

set(axes1,'XDir','reverse','YDir','reverse');


다음과 같은 그래프가 나오는 것을 확인 할 수 있습니다.

축 반전은 값이 변하는게 아니라 그래프의 축만 변화 시키는 것이므로 헷갈려서는 안 됩니다.



지난 포스팅에서 Visio 대체 프로그램으로서 Dia에 대해 소개해 드렸었는데요~


2013/09/12 - [유틸] - Visio 대체 오픈 소스 프로그램 Dia


 

오늘은 이런 설치형 프로그램이 아닌 웹 페이지를 통해 바로 사용 가능한 프로그램에 대해 설명 드리려 합니다.

 

오늘 소개할 프로그램은 웹 페이지에서 순서도와 같은 그래프 그리기가 가능한 draw.io 입니다.

 

홈페이지는 아래 주수와 같구요~

https://www.draw.io/

 

설치형 프로그램이 아니라~ 웹브라우져만 있으면 바로 사용할 수 있다는 장점이 있습니다.

 

아래 그림과 같이 구글 드라이브와 연동해서 파일을 관리 할 수도 있고~


 

여러가지 shape 들이 구비가 되서 굉장히 편리 하더군요.

 

특히나 Dia 등에서는 shape의 회전등이 불편하다는 느낌이 있었는데~

 

draw.io 에서는 CTRL + R 만 누르면 shape 가 회전 되고~

 

shape 간의 정렬이나 연결 등도 매우 간단하게 할 수 있습니다.


 

파일 메뉴의 저장 형태를 보면 기본적으로는 XML 확장자 이지만~



파일 메뉴의 보내기를 통해서 PNG, GIF, JPG, PDF, SVG, XML 등과 같은 형태로 내보내서~ 워드와 같은 프로그램에서도 이용 가능 합니다.



도움 메뉴에 보시면~ video tutorial 이 있는데~ 영어라도 보다 보면 사용방법에 대해 감을 잡을 수 있을 겁니다.


 

 



이전 포스팅에서 text() 함수를 이용하여 원하는 좌표에 텍스트를 넣는 방법을 알아 봤습니다.

 

 
2011/04/09 - [MATLAB] - MATLAB 그래프에 값 넣기


오늘의 포스팅에서는 그래프의 좌표를 마우스로 클릭하면 값이 입력되는 gtext() 함수에 대해 알아 보겠습니다.

 

먼저 다음 명령어를 통해 그래프를 하나 띄워 보죠.

 

x=1:10;

plot(x,x,'r:.'), grid on

 

이제 다음 명령어를 통해 input 1 이라는 글자를 그래프에 넣어 보겠습니다.

 

gtext('input 1')

 

위 명령어를 실행하고 그래프 위에 커서를 올리면 다음과 같이 십자선이 나타납니다.

 

 

원하는 위치에 클릭을 하면 아래 그림 처럼 글자가 입력이 됩니다.

 

 





다음으로 여러 글자를 한 지점에 입력해 보죠.

 

여러 글자를 입력할때는 다음과 같이 cell class 로 값을 써 줍니다.

 

gtext({'input 1', 'input 2', 'input 3'})

 

중간에는 ,(쉼표) 를 이용하였습니다.

 

위 코드를 실행하면 다음과 같이 한 지점에 위 글자들이 3개 행으로 입력됩니다.

 


 




이제 마지막으로 클릭을 할 때마다 문자열 하나씩 넣어보겠습니다.

 

gtext({'input 1' ; 'input 2' ; 'input 3'})

 

클릭을 할 때마다 문자열 하나씩 넣을 때는 위 코드처럼 ;(세미콜론) 을 넣어줍니다.

 

그럼 아래 그래프처럼 클릭할 때 마다 문자열이 입력이 됩니다.

 


+ Recent posts