MATLAB 에디터에서 코드를 작성하고 해당 코드에 대해서 문서를 생성할때 MATLAB 에디터의 퍼블리시 기능을 사용하곤 합니다. MATLAB 퍼블리시에서는 코드에 대해서 html, xml, latex, doc, ppt, pdf 등으로 문서를 생성해 줍니다. 퍼블리시 창에서 작업 폴더나 몇몇 옵션 등을 변경해 줄 수 있지만 사용 방법은 그냥 버튼 하나만 누르면 되기 때문에 뭐 그리 설명할게 없을 것 같습니다.

MATLAB Command Window 에서 문서를 생성하기 위해서는 아래와 같이 publish 명령어를 사용하면 됩니다. 첫 번째 인자로 파일명을 넣어 주고 두 번째 인자로 생성 하고자 하는 문서의 형태를 넣어주면 됩니다.

publish(‘publishTest.m’, ’doc’);

그런데 이렇게 간단한 문서 생성 방법도 코드가 잘못된 경우에는 생성이 잘 안 되는 경우가 있습니다.

바로 아래의 코드 예와 같이 루프문 안에 %% 기호로 된 섹션이 있는 경우에는 문서 생성이 굉장히 오래 걸리는 것을 볼 수가 있었습니다. 따라서 문서 생성을 위해서는 코드의 루프문 안에는 %% 기호를 사용해선 안됩니다.

루프 문 안에 있던 %% 섹션 표시를 % 주석으로 처리하고 문서 생성을 하니 정상적인 속도로 문서가 생성 되더군요.

문서 생성 결과를 보면 %% 로 된 섹션 표시는 하나의 챕터를 표시하는 것을 알 수가 있습니다.

For 문 안에 섹션 표시가 있으면 해당 섹션 부분을 문서의 목차에 계속해서 표시하게 될 것이므로 문제가 될 것입니다. 아마도 publish 기능에 루프 문안의 섹션에 대한 예외 처리는 안되어 있는것으로 생각되네요.



아래 주소에서 Notepad++, Vim 실행시의 아규먼트 옵션에 대해 설명한 적이 있는데 오늘은 Scite Editor 에서의 커멘드 라인 아규먼트에 대해 소개하려 합니다.

http://iamaman.tistory.com/1527

이에 대해서는 아래 주소에서 전체 내용을 확인 할 수 있습니다.

https://www.scintilla.org/SciTEDoc.html

아래 주소에서 커멘드 라인 옵션을 볼 수가 있는데~

https://www.scintilla.org/SciTEDoc.html#CommandLineArguments

scite editor 를 실행하면서 특정 파일을 열고 싶은 경우에는 -open 을 사용하면 되고 open 옵션은 안 써줘도 되더군요. 특정 파일을 열고 싶은 경우 첫번째 아규먼트로 해당 파일의 path 를 넣어주면 해당 파일을 열면서 scite editor 를 시작합니다.

-goto 옵션을 사용하면 특정 라인으로 바로 갈 수 있습니다. 아래 예와 같이 두번째 인자에 -goto: 를 써주고 실행하고자 하는 라인번호를 넣어주면 test.ahk 파일을 열면서 90 번째 줄에 커서가 놓인 상태로 scite4autohotkey 가 실행 됩니다.

"C:\Program Files\AutoHotkey\SciTE\SciTE.exe" "D:\test.ahk" -goto:90




MS office 제품들은 VBA(Visual Basic for Applications) 를 활용하여 다양한 작업들을 할 수 있는데~

 

오늘은 미완이긴 하지만 Visio 에서 같은 스타일의 shape를 선택하는 방법에 대해 소개하려 합니다.

 

아래 그림은 7개의 타원과 5개의 직사각형으로 구성된 Visio 그림 입니다.




 

 

위 그림에서는 타원 하나가 선택을 한 상태입니다.

 

다음으로 Visio 에서 ALT + F11을 눌러서 아래 그림과 같은 VBA editor 를 엽니다.

 

 

위 그림과 같이 아래 코드를 넣어 줍니다. 그리고 마지막으로 Ctrl + S를 눌러서 저장 합니다.



 

이제 Editor 를 닫고 다시 Visio 로 와서~ 매크로 메뉴를 눌러서 매크로 실행 창을 띄우고~ 아래와 같이 위에서 저장한 FindShapes() 함수를 실행 합니다.

 

 

그럼 아래 그림과 같이 같은 스타일의 타원들이 다 선택되는 것을 확인 할 수 있습니다.

 

 

직사각형 하나를 선택하고 위와 같이 FindShapes() 함수를 실행하면 아래 그림과 같이 직사각형들이 다 선택되는 것을 확인 할 수 있습니다.


 

위 방법은 VBA 를 사용한 방법인데 워드 등과는 다르게 Normal.dotm 등과 같은 설정파일에 저장은 안되더군요. 한번 저장해 놓고 영구적으로 사용하는 방법은 아직 찾지 못했습니다.

 

혹시 VISIO 에서 영구적으로 VBA 코드를 저장하고 사용할 수 있는 방법을 알고 계신 분은 좀 알려 주세요~

 


Autohotkey 에디터로 간단하게 사용할 수 있는 툴에 대해 소개 드리려 합니다.

 

Autohotkey 코딩을 할 때 Scite4autohotkey를 주로 사용하곤 하지만 몇 가지 불만족 스러운 부분들 때 문에 아래 소개한 에디터도 종종 사용하곤 합니다.

  

2014/06/27 - [programming language/Autohotkey] - Autohotkey Editor AHK Studio


Autohotkey 코드를 실행하기 위해서는 파일로 저장해서 실행하곤 하는데~ 간단히 테스트를 해본다거나 할 때는 이렇게 파일로 저장하는게 굉장히 불편한 일입니다.

 

그래서 찾아보니 Autohotkey Toolkit 이라는 툴이 나오더군요.

 

Autohotkey Toolkit 은 Autohotkey 포럼에서 RaptorX 라는 아이디로 활동하는 분이 만들었는데~

 

아래 주소에서 다운로드 받을 수 있습니다.

 

http://www.autohotkey.com/board/topic/56863-script-autohotkey-toolkit-v0811/#376087

 

다음 그림과 같이 Hotkeys, Hotstrings, Live Code 로 구성되고~ Hotkeys 탭에서는 말 그대로 단축키를 설정할수 있고 Hotstrings 탭에서는 Hotstring 을 그리고 live code 에서는 코딩을 해서 바로 실행해 볼 수 있습니다.

 

 

다음과 같이 간단하게 코딩을 하고 Run 을 누르면 따로 저장하지 않고도 실행 할 수 있습니다.

이렇게 결과가 나오네요~

 

Autohotkey 포럼의 글들을 보다가 정말 좋아 보이는 프로그램을 하나 발견 했습니다.

 

아래 포스팅에서 밝혔다시피 Autohotkey editor 로 저는 보통 Scite4autohotkey 를 주로 사용했는데~


2014/02/18 - [programming language/Autohotkey] - Notepad++ 에서 Autohotkey 코딩 하기


2012/02/22 - [programming language/Autohotkey] - Autohotkey를 사용해 보아요~

 

포럼의 아래 주소에~ AHK Studio 라는 툴이 있더군요. Autohotkey 로 만들어진 Autohotkey editor 입니다.

 

http://www.autohotkey.com/board/topic/85996-ahk-studio/

 

Scite4autohotkey 에서는 indent 를 다시 해주는 기능 등은 없어서 좀 불편했는데~ AHK Studio 에서는 이런 기능들이 있더군요.




 

AHK Studio 는 위 포럼에서도 다운로드 받을 수 있고~ AHK Studio 개발자의 사이트에서도 다운로드 받을 수 있습니다. 다운로드 주소는 아래와 같습니다.


 

http://maestrith.com/

 

아래 그림에서와 같이 Autohotkey 소스 코드를 받고 싶으면 AHK 를 실행 파일만 받고 싶다면 EXE 링크를 클릭하면 됩니다.




 

현재 제 설정 파일을 열어보니 알아서 include 된 파일들도 열어 주더군요.

 

 

또한 위 그림처럼 2 pannel 도 되구요~ 제일 오른쪽에 함수 네비게이터도 있더군요. 




위 그림에서는 오른쪽의 함수 네비게이터의 폭이 좀 좁게 보이지만~ window → widths 메뉴에 들어가서 조절 할 수 있더군요. 




 

또한 아래 유투브를 보니… 현재 파일의 여러 함수들을 나눠서 각각의 Autohotkey 파일들로 분류 해주는 기능도 있는 것 같네요…


 

 

잠깐만 봐도 꽤 매력적이네요~ 사용 문서 좀 보면서 공부 좀 해야겠네여~


  1. 송사리 2015.01.25 15:21

    오핫에 대해 알고 싶은 분야를 쉽게 설명을 잘해주셔서 고맙습니다.
    정말 정말 대단한 사람같아요.

    • 남성 2015.01.25 16:31 신고

      도움되었다니 다행이네요. 방문해 주셔서 감사합니다. ^^

제 블로그를 방문해 주시는 분들이라면 대부분이 MATLAB을 사용하는 분들일 텐데요.

 

MATLAB 은 굉장히 좋은 툴이지만 편리한 툴도 더 편리하게 사용하고 싶은 게 사람의 욕심이죠~

 

오늘은 Autohotkey를 사용한 MATLAB 단축키 프로그램에 대해 소개하려 합니다.

 

제가 사용해 본 결과 아래 프로그램을 통한 단축키는 MATLAB Editor 가 Undock 돼 있는 경우에만 유용하더군요.

 

소개할 프로그램은 아래 주소에서 다운로드 받을 수 있고요.

http://www.mathworks.com/matlabcentral/fileexchange/5452-meditor-ctrl+tab-support

 

아래 그림과 같이 버튼을 클릭해서 다운로드 후 압축을 풀고 MEditor72_CtrlTab.exe 파일을 실행하시면 됩니다.

 

실행 하시면 윈도우 하단에 다음과 같이 메뉴가 나타납니다.

 

마우스를 가져다 대면 기본적인 단축키 들에 대해 나타나는데요. MATLAB Editor 에 여러 파일이 열려 있을 때, Ctrl+Tab 을 누르면 다음 파일로 가고, Ctrl+Shift+Tab 를 누르면 이전 파일로 넘어가는 형태입니다.

 

MATLAB 에서 기본적으로는 Editor 의 파일간의 전환은 Ctrl+ Page Up, Ctrl+ Page Down 으로 전환하게 되는데 이게 분편하신 분들만 사용하시는 게 좋을 것 같군요.

  

Editor 가 MATLAB desktop 에 dock 돼 있는 경우에는 Ctrl+Tab 을 누르면 MATLAB desktop 의 각 구성 패널간에 전환이 일어나더군요.


 

그래서 저는 MATLAB Editor 가 Undock 돼 있는 경우만 Ctrl+Tab, Ctrl + Shift + Tab 단축키를 사용합니다.

 

다음으로 Ctrl + Caps Lock 단축키인데요. Ctrl+Caps Lock 를 누를 때 마다 Command Windows 와 Editor 간의 전환이 이루어 집니다.

 

MATLAB 에서는 기본적으로 Ctrl + 0 을 누르면 Command Windows 로 이동하고, Ctrl + Shift + 0 를 누르면 Editor 로 이동하는데 한 손으로 단축키를 누르고 싶다 하시는 분들한테는 유용할 것 같네요.

 


  1. kcr 2016.07.17 22:22

    좋은 정보 감사합니다

    • 남성 2016.07.17 22:24 신고

      도움이 되었다니 다행이네요. 방문해 주셔서 감사합니다.

MATLAB 스크립트의 실행은 스크립트 에디터에서 F5 를 누르거나 command 창에서 해당 되는 스크립트 파일명을 치고 엔터를 쳐서 실행하곤 합니다.

 

함수 스크립트의 경우에도 마찬가지로 일반적인 실행 스크립트와 같이 실행 시킬 수 있지만~

 

입력 argument 가 있는 경우에는 그 상황이 좀 달라집니다.

 



예를 들어보죠.

 


function y=TempFunc()

 

x=1:10;

 

y=x.^2+2.*x+3;

 

figure,

plot(x,y), grid on

 

 

위와 같은 TempFunc () 함수는 에디터에서 바로 F5 를 누르거나 초록색 삼각형의 실행 버튼을 눌러도 실행이 됩니다.

 

하지만 다음과 같이 x 를 입력 argument 로 준 경우에는 에디터에서 F5 를 눌러서는 제대로 실행이 되지 않죠.

function y=TempFunc(x)

 

y=x.^2+2.*x+3;

 

figure,

plot(x,y), grid on

 

 

다음과 같이 에러가 납니다.

 

x 라는 값이 없으니 당연한 결과죠.

 

뭐 command 창에서 x 값을 정의해 준 후에 다음과 같이 하면 되겠지만~

 

버튼 한번에 실행되면 더욱 좋겠죠.

 

MATLAB Editor 의 Debug 메뉴à Run Configuration for 파일명 à Edit Configurations for 파일명 으로 들어가 줍니다.

 

이런 창이 나타나면~ 빨간색으로 표시한 부분의 버튼을 눌러서 Run Configuration 을 추가해 줍니다.

 

그리고 다음과 같이x 라는 argument 와 TempFunc(x) 함수를 작성해 줍니다. configuration name 이 TempFunc_2 이라는 것을 확인합니다.

 

이제 다시 MATLAB 에디터에서 다음같이 설정해 줍니다.

 

에디터의 실행 버튼 옆의 조그만 아래 삼각형 버튼을 눌러서 configuration을 선택 할 수도 있습니다.

 

이렇게 선택을 한 후에 에디터 창에서 F5 를 눌러 보시면 위에서 작성했던 TempFunc_2 configuration이 실행되기 때문에 함수를 실행 시킬 수 있습니다.


위 설명한 과정에 대한 animation입니다.  아래 그림을 클릭하시면 크게 보실수 있습니다. 






MATLAB 은 대화형 언어로서 Command 창에 명령어를 치면 결과가 바로 밑에 뚝딱 뚝딱 나옵니다.

그런데 코드가 길어 진다면 Command 창에서 작업을 하는 것은 비 효율적입니다.

그래서 보통은 Editor 창에서 코딩을 하고 M 파일로 저장하고 실행을 시켜서 Command 창에서 확인을 합니다.

Editor 창에서 F5 를 누르거나 초록색 삼각형 모양으로 생긴 실행 단추를 클릭하면 M 파일이 실행이 됩니다.

 

오늘 소개할 내용은 MATLAB Editor 창의 파일 비교 기능 입니다.

M 파일을 버전 별로 작성하다 보면 꼭 변경 내용을 추적해야 될 때가 있습니다.

코드가 짧다면 상호 비교하는데 문제가 안되지만, 코드가 100 줄 넘어가기 시작하면 비교하는 것도 참 눈 아프고 힘든 일입니다.

이럴 때 오늘 설명하는 파일 비교 기능을 이용하면 편리 합니다.

오늘 설명 드리는 Comparison 툴은 파일 뿐만 아니라 폴더 및 하위 폴더 그리고 mat 파일 까지도 비교가 가능합니다.

 

Editor 에서 다음과 같이 두 파일을 열었습니다.

 

 

위 그림의 예에서 왼쪽 파일은 plot_file2.m 파일이고 오른쪽은 plot_file1.m 파일입니다.

양쪽이 다른 점은 빨간색 네모 칸 친 부분이 다릅니다.

plot_file1.m 파일에 커서가 있는 상태에서 다음과 같이 Tools 메뉴를 클릭하고 그 하위에 Compare against 그리고 그 하위에 Choose 를 클릭합니다.

그럼 아래와 같은 창이 나오는데, 그림처럼 파일 이름 등을 지정 하고 text comparison 을 설정하고 Compare 버튼을 누릅니다.

 

 

그럼 또 이런 창이 나옵니다.

 

 

위 창에서 보면 일단 맨 밑의 빨간색 네모 칸을 보면 10줄은 동일 하고 왼쪽에서 2줄이 틀리고 오른쪽에서는 1줄이 틀린다고 나옵니다.

그리고 가운데에 빨간색 네모 칸 친 부분을 보면 < 기호가 있고 x 기호가 있는 게 보입니다.

<, > 기호는 한쪽에만 내용이 있을 때 나타납니다. 그리고 x 기호는 둘 다 있긴 있는데 일부가 다를 때 나타나죠.

 

맨 위쪽에 있는 $ 기호처럼 생긴 부분을 클릭하면 빈 줄은 비교를 하지 않습니다.

틀린 부분들에 대한 이동은 맨 위에 있는 빨간색 네모 부분의 화살표 들을 클릭하면 됩니다.

위 예는 설명을 위해 굉장히 간단하게 만들어서 위 compare 기능이 그리 좋지 않은 것처럼 보이지만 한 100 줄만 넘어가는 코드를 비교할 때는 정말 빠르게 다른 부분을 찾을 수가 있습니다.



+ Recent posts