아래 포스팅들에서 Windows 에서 사용가능한 launchy 프로그램인 Launchy, Wox 등에 대해 소개한 적이 있습니다.

https://iamaman.tistory.com/911

https://iamaman.tistory.com/2531

https://iamaman.tistory.com/1565

물론 지금 사용하고 있는 launchy 도 대단히 편리하다고 생각하지만 저는 계속해서 조금 더 편리한 프로그램을 찾는게 좋아서 검색을 하다보니 우연치 않게 Keypirinha 를 발견하게 됐습니다.

Keypirinha 는 아래 주소에서 다운로드 할 수 있습니다.

https://keypirinha.com/download.html

프로그램을 실행하거나 하는 기능들은 대부분의 런치 프로그램의 공통된 기능이기 때문에 Keypirinha 만의 장점이라고 보기는 어려울 것 같고~ Keypirinha 를 조금 사용해 보면서 느꼈던 좋은 점만 소개를 해보겠습니다.

※ String 처리

개발을 하다보면 String 을 다루는 경우가 굉장히 많이 있고 경우에 따라 대소문자 변경을 종종하곤 합니다. 이런 경우 물론 저는 Autohotkey 로 단축키를 만들어서 사용하고 있긴 하지만 Keypirinha 를 사용해도 이런 영문 대소문자 처리를 매우 쉽게 할 수 있습니다. 또한 랜덤한 패스워드를 만드는 경우나 argument 또는 URl 의 Split, Quote 등을 할 수가 있습니다.

대소문자 변경 기능을 사용을 사용 해서 제 블로그 주소인 i am a man 을 넣어보면 ~ 아래와 같이 Lower, Upper, Capitalized, Title Case 등으로 자동으로 제시를 해 주는 것을 확인할 수 있고, 원하는 내용을 더블 클릭하거나 엔터로 선택을 하면 클립보드에 해당 내용이 복사 됩니다.

※ Bookmark 접근

저는 현재 크롬브라우저로 사용하고 있고 Keypirinha 를 설치하면 크롬 Bookmark 를 자동으로 가져오는 것을 확인할 수 있었습니다. 요즘 하도 많은 검색을 하다보니 Bookmark 기능을 정말 많이 사용하는것 같은데 Keypirinha 에서 몇까지 키워 돈만으로 바로 크롬 Bookmark 에 접근할 수 있다 보니 굉장히 편리한 느낌입니다.

※ 수식 및 진법 계산이 매우 편리

지금 사용하고 있는 launchy 에서도 간단한 수식 계산들은 가능하지만 Keypirinha 를 사용해보니 아래와 같이 변수를 설정에서 사용할 수 있다는 점들이 굉장히 편리하게 느껴졌습니다. 아래 예를 확인해 보면 계산 결과를 x라는 변수에 넣게 되는데 ~

해당 x라는 변수를 이용해서 다음과 같이 값을 재 사용해서 계산을 할 수가 있었습니다.

위 결과를 보시면 해당 결과값에 대해서 다양한 진수로도 표현이 되는 것을 확인할 수 있고 통화 표시를 할 때 사용되는 3자리 콤마도 자동으로 들어가는 것을 확인할 수 있습니다.

그 외의 런치 프로그램으로 최근에 알게 된게 Executor 라는 프로그램인데 아래 주소에서 다운로드 할 수 있습니다. 관심 있으신 분들은 한번쯤 설치해서 사용해 보시는 것도 좋을 것 같습니다.

http://www.1space.dk/executor/



MATLAB 의 rot90() 함수는 matrix 를 시계 반대방향으로 돌리는 기능을 하는 함수입니다.

 

x=magic(4)

x =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

 

위 x 에 대하여 다음과 같이 하면 시계 방대방향으로 90 도 돌리게 됩니다.

 

x1=rot90(x)

x1 =

13 8 12 1

3 10 6 15

2 11 7 14

16 5 9 4

 

위 x 에 90 도씩 3번 시계 방대방향으로 돌리고 싶다면 다음과 같이 하면 됩니다.

 

x2=rot90(x,3)

x2 =

4 9 5 16

14 7 11 2

15 6 10 3

1 12 8 13

 

 

다음으로 설명한 명령어는 triu(), tril() 함수 입니다.

 

triu() 함수는 upper triangular 부분을 구하는 함수이며 tril() 함수는 lower triangular 부분을 구하는 함수입니다.

 

triu() 함수를 실행하면 다음과 같이 됩니다. diagonal 을 포함하여 upper triangular 부분만 남아 있고 나머지는 다 0 이 되게 됩니다.

 

x_triu=triu(x)

x_triu =

16 2 3 13

0 11 10 8

0 0 6 12

0 0 0 1

 

 

triu() 함수에 diagonal 로 부터의 offset 을 줘서 다음과 같이 diagonal 부분을 제외하고 선택도 가능합니다.

 

x_triu2=triu(x,1)

x_triu2 =

0 2 3 13

0 0 10 8

0 0 0 12

0 0 0 0

 

triu() 함수에 – 의 옵셋을 주게 되면 diagonal 아래 방향으로 옵셋을 주게 됩니다.

 

x_triu3=triu(x,-1)

x_triu3 =

16 2 3 13

5 11 10 8

0 7 6 12

0 0 15 1

 

tril() 함수는 다음과 같이 사용합니다.

 

x_tril= tril(x)

x_tril =

16 0 0 0

5 11 0 0

9 7 6 0

4 14 15 1

 

triu() 함수와 사용방법은 비슷하지만 옵셋을 줄 때는 조심하셔야 합니다.

 

x_tril1= tril(x,1)

x_tril1 =

16 2 0 0

5 11 10 0

9 7 6 12

4 14 15 1

 

triu() 함수에서 + 옵셋을 줬을 때는 triangular 의 크기가 줄어들었는데 tril() 함수에서는 + 옵셋을 줬을 때 triangular 의 크기가 커지는 것을 알 수 있습니다.

 

tril(), triu() 함수의 옵셋은 무조건 diagonal 을 기준으로 + 면 위쪽으로 – 면 아래 쪽으로 triangle 의 크기가 변한다고 알고 계시면 됩니다.

 

tril() 함수에서 -1로 옵셋을 주니깐 삼각형이 줄어들게 됩니다.

 

x_tril2= tril(x,-1)

x_tril2 =

0 0 0 0

5 0 0 0

9 7 0 0

4 14 15 0

 

 

MATLAB 에서 '(쉼표) 는 hermitian transpose 를 의미 합니다.

 

hermitian transpose 란 complex conjugate transpose 를 하는 것입니다.

 

다음과 같은 matrix 에 대해 hermitian transpose 를 취해 보죠

 

x=magic(3)+i*magic(3)

x =

8.0000 + 8.0000i 1.0000 + 1.0000i 6.0000 + 6.0000i

3.0000 + 3.0000i 5.0000 + 5.0000i 7.0000 + 7.0000i

4.0000 + 4.0000i 9.0000 + 9.0000i 2.0000 + 2.0000i

 

위 결과를 보면 imaginary 의 부호가 바뀌었고 transpose 된 것을 확인 할 수 있습니다.

 

x'

ans =

8.0000 - 8.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i

1.0000 - 1.0000i 5.0000 - 5.0000i 9.0000 - 9.0000i

6.0000 - 6.0000i 7.0000 - 7.0000i 2.0000 - 2.0000i

 

 

complex conjugate 는 안 하고 transpose 만 할 때는 .' (점 - 쉼표)를 이용해야 합니다.

 

x.'

ans =

8.0000 + 8.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i

1.0000 + 1.0000i 5.0000 + 5.0000i 9.0000 + 9.0000i

6.0000 + 6.0000i 7.0000 + 7.0000i 2.0000 + 2.0000i

 

 

MATLAB 에서 대소문자 변환 관련한 함수로는 upper(), lower() 함수가 있습니다.

 

upper()함수는 대문자로 변환해 주며

 

X=upper('I am a man')

X =

I AM A MAN

 

lower() 함수는 소문자로 변환 해주는 함수 입니다.

 

lower(X)

ans =

i am a man

  


+ Recent posts