MATLAB 을 사용하다 보면 struct 타입을 종종 사용하곤 합니다. 그리고 struct 타입을 모아서 배열로도 사용하곤 하는데 MATLAB 기본 함수중에 struct 타입 배열을 정렬하는 기능의 함수는 없는것 같더군요.

그냥 만들어 사용해도 되겠지만 검색을 조금 해보니 비슷한 코드를 발견했고 해당 코드를 정리해서 아래와 같은 함수로 만들었습니다.




이제 함수를 만들었으니 한번 사용해 보죠.

a = struct('id',1, 'data', [1:10])

b = struct('id',2, 'data', [2:11])

beforeVec= [b a]; % 두 struct 를 사용하여 배열로 만듬

sortedVec = struct_sort_by_field(beforeVec,1,1); % 첫번째 field 의 첫번째 인덱스 값에 대해 정렬

beforeVec.id % 기존 배열의 인덱스 확인

sortedVec.id % 정렬된 배열의 인덱스 확인

위 결과를 보면~ sortedVec 는 id 값에 따라 오름차순으로 정렬 된 것을 확인 할 수 있습니다.



저는 증권사 API를 사용하여 매일 기관 외국인 10억이상 순매수 종목에 대해서 검색을 수행하고 있습니다. 프로그래밍 언어로 Python 을 사용하고 있고, API 로 부터 추출된 종목 리스트를 전일비 상하락율에 따라 정렬을 해서 포스팅을 합니다.

이에 대한 예제는 아래와 같습니다. 예로 든 category 데이터에서 3 번째 인덱스 값이 전일 대비 상하락율입니다. 해당 인덱스에 따라서 전체 데이터가 정렬 되도록 하기 위해서 operator 모듈의 itemgetter를 사용합니다. itemgetter 에 3 이라는 정렬의 기준이 되는 인덱스 값을 넣어 줍니다. 기본 정열은 오름차순입니다.




내림차순으로 정열을 하고 싶은 경우에는 reverse 옵션을 True 로 설정하면 됩니다.

3 번째 인덱스가 첫 번째 정렬 조건이고 4 번째 인덱스가 두 번째 정렬 조건이라고 한다면 itemgetter(3, 4) 와 같이 순서대로 기준이 되는 인덱스를 넣어 주면 됩니다.

위 코드를 실행해 보면 아래와 같은 결과를 확인할 수 있습니다.



지난 포스팅에서 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 이 있는데~ 영어라도 보다 보면 사용방법에 대해 감을 잡을 수 있을 겁니다.


 

 



+ Recent posts