많은 분들이 MATLAB을 사용하여 데이터 처리를 할 것이라고 생각을 합니다. 사실 MATLAB을 사용할 수 있는 분야는 너무나 무궁무진해서 저도 다 알지는 못 하고 저는 회사에서 신호 처리를 하고 있는데 데이터를 가공하기 위해서 MATLAB 을 주로 사용하는 편입니다.

아래 포스팅에서 소개를 했었지만 매트랩 그래프를 보면서 데이터를 선택하고 값을 읽고 텍스트를 입력하거나 다양한 효과를 줄 수가 있습니다.

https://iamaman.tistory.com/204

오늘은 그 중에서 데이터 커서를 사용하여 그래프에서 값을 읽거나 브러시 기능을 사용하여 많은 데이터들을 선택하는 방법에 대해서 살펴보려 합니다.

다음과 같은 코드를 준비하고 그래프를 하나 드려 보겠습니다.

x=[ones(1,100)*2 ones(1,100)*10 ones(1,100)*20];

xx=x+rand(size(x));

plot(xx), grid on

위 코드를 실행하면 아래와 같은 그래프 하나가 뜨게 될 겁니다.

그래프에서 데이터 커서 기능 사용하기

그래프를 보면서 특정 부분의 데이터를 알고 싶은 경우가 있습니다. 그런 경우에는 Figure 창의 데이터 커서 기능을 사용 합니다.

데이터의 값을 보고 싶은 경우에는 아래와 같이 십자가 모양 버튼의 아이콘을 클릭해 줘도 되고 ~ 메뉴에서 “툴(T) -> 데이터 커서(A)” 를 선택해도 됩니다.

데이터 커서를 눌러준 후에 커서가 십자가 모양으로 변하고 원하는 데이터 지점을 선택하면 아래와 같이 해당 부분의 데이터값이 나타나게 됩니다. 여러 데이터를 찍고 싶으면 Shift 를 누른 상태에서 왼쪽 클릭을 해 주면 아래와 같이 복수의 데이터를 선택할 수도 있습니다. 이렇게 선택을 한 후에 오른쪽 클릭을 하면 해당 데이터와 관련된 툴팁 메뉴가 나오고 원하는 기능을 선택 할 수가 있습니다.

저는 주로 데이터를 삭제하거나 새 데이터를 만들기보다는 “커서 데이터를 작업 공간으로 내보내기” 기능을 주로 사용합니다. “커서 데이터를 작업 공간으로 내보내기” 버튼을 누르면 변수 이름을 입력할 수 있는 창이 하나 뜨게 되고 데이터 커서를 사용하여 선택한 데이터들을 MATLAB 워크스페이스에 저장 하고 다양한 계산에 활용할 수 있습니다.

그래프에서 브러시 기능 사용하기

데이터 커서는 데이터의 값을 보는데 주로 사용을 하지만 브러시 기능은 마우스로 다량의 데이터를 선택해서 편집하는데 주로 사용하곤 합니다. 브러시 기능 역시 마찬가지로 아이콘을 클릭하거나 메뉴에서 “툴(T) -> 브러시(B)” 를 선택하면 됩니다.

브러시는 기본적으로 빨간색이 선택되어 있는데 브러시 아이콘 옆에 있는 아래쪽 화살표를 누르면 브러시 색깔을 선택할 수 있습니다.

브러시 기능을 실행 하고 아래와 같이 원하는 부분을 드래그해서 선택해주면 ~ 원하는 데이터 부분들을 선택할 수 있습니다. 데이터 커서 기능과 마찬가지로 오른쪽 버튼 클릭하면 추가적인 기능을 사용할 수 있고 “변수 만들기” 버튼을 누르면 데이터 커서에서와 마찬가지로 MATLAB 워크스페이스에 데이터를 저장할 수도 있습니다.

위 메뉴에서 확인할 수 있는 바와 같이 선택된 데이터들에 대하여 일괄적으로 특정값으로 바꾸거나 제거하는 등 편리하게 데이터를 조작할 수 있습니다.

아래 포스팅들에서 소개를 했었던 tiobe 에 접속을 해 보니 요즘도 계속해서 MATLAB 의 인기가 상승 중이더군요~ 요즘은 11위 까지 올라갔네요~

https://iamaman.tistory.com/85

https://iamaman.tistory.com/1479

https://iamaman.tistory.com/1590

아시는 바와 같이 MATLAB 은 일년에 두번씩 업데이트를 하고 있고 지금도 계속해서 발전하고 있는 프로그램입니다. 많은 분들이 현명하게 MATLAB 을 활용하셨으면 하는 바람입니다.



보통 Autohotkey 는 CTRL, ALT, SHIFT 와 같은 Trigger 키와 숫자, 문자 등과 같은 키의 조합을 사용하여 단축키를 만들곤 합니다.

그냥 문자 키 두개를 사용하여 만들고 싶은 경우에는 & 로 연결해서 사용하곤 하지만 일반적인 경우에는 그 이상의 키들을 조합해서 사용할 수는 없습니다. 

2개 이상의 문자를 사용하여 단축키를 만들고 싶은 경우에는 #if 를 사용하면 해결 할 수 있습니다.

아래 주소의 메뉴얼의 예를 보면 #if  와 GetKeyState() 함수를 사용하여 AppsKey 가 눌려 있는 경우 F1, F2... F6 키의 조합을 이용하여, 즉 AppsKey 와 Function 키 두개의 조합으로 키를 만들어 사용 할 수 있죠.



#if GetKeyState("AppsKey", "P")
F1 & F2::MsgBox F1 & F2 Hotkey activated.
F2 & F3::MsgBox F2 & F3 Hotkey activated.
F3 & F4::MsgBox F3 & F4 Hotkey activated.
F4 & F5::MsgBox F4 & F5 Hotkey activated.
F5 & F6::MsgBox F5 & F6 Hotkey activated.

#if

위 코드를 실행 시킨 후에  오른 손으로 AppsKey를 누르고 왼손으로 F1 과 F2 를 동시에 누르면 아래와 같이 message box 가 나옵니다. 


제 키보드의 경우  AppsKey 옆에 Right Window 키가 있습니다. 그래서~ Right Window 와  AppsKey 그리고 Function 키들의 조합을 사용하여 아래와 같이 4개 키 조합으로 단축키를 만들 수 도 있겠죠~

#if GetKeyState("RWin", "P") and GetKeyState("AppsKey", "P")
F1 & F2::MsgBox F1 & F2 Hotkey activated.
F2 & F3::MsgBox F2 & F3 Hotkey activated.
F3 & F4::MsgBox F3 & F4 Hotkey activated.
F4 & F5::MsgBox F4 & F5 Hotkey activated.
F5 & F6::MsgBox F5 & F6 Hotkey activated.

#if

#if 구문에 and 를 계속 붙이면~ 더 많은 키 조합도 만들 수가 있을 겁니다.



  1. 편리본좌 2017.03.11 18:24

    감사합니다 덕분에 세개의 조합키로도 사용할수 있다는걸 알았습니다 그런데

    마지막에 #if 를 붙여줘야 하나요? return 같이 닫는 역할인가요?

    • 남성 2017.03.11 18:31 신고

      #if GetKeyState("AppsKey", "P") 에 의한 영향이 끝나는 부분입니다.
      즉 #if 를 안 써 주면 #if GetKeyState("AppsKey", "P") 에 의한 영향이 계속 된다는 거죠.

  2. 편리본좌 2017.03.11 20:06

    관리자의 승인을 기다리고 있는 댓글입니다

CapsLock, NumLock, ScrollLock 많이들 사용 하시나요. 

 

저는 대부분 CapsLock 은 off , NumLock 은 On, ScrollLock 은 off 로 설정해서 사용하곤 합니다. 

 

대문자는 거의 사용 하지 않고 가끔 Shift 키를 써서 사용하곤 합니다.

 

그런데 가끔씩 CapsLock, NumLock, ScrollLock  키들이 눌러서 불편하더군요. 

 

그래서 아예 소프트웨어 적으로 CapsLock, NumLock, ScrollLock  키들을 고정 시켜서 사용하는게 좋겠다고 생각해서 Autohotkey 로 설정해서 사용 합니다. 

 

다음과 같이 설정하면 CapsLock 은 off , NumLock 은 On, ScrollLock 은 off 로 고정이 되고 각각의 키를 눌러도 상태가 변하지 않아서 편하더군요. 

 

SetNumLockState, AlwaysOn

SetCapsLockState, AlwaysOff

SetScrollLockState, AlwaysOff

 

재 부팅 하거나 위 각 함수를 On 또는 Off 해 주면 상태를 언제든 변경 할 수 있습니다. 

 

위 함수에 대한 설명은 아래 주소에 자세히 나와 있습니다. 

 

https://autohotkey.com/docs/commands/SetNumScrollCapsLockState.htm


+ Recent posts