본문 바로가기

소스코드가있는글21

주성분 분석(PCA, Principal Component Analysis)의 개념 및 구현 주성분 분석(Principal Component Analysis, PCA) 은 데이터 집합 내에 존재하는 각 데이터의 차이를 가장 잘 나타내 주는 요소를 찾아 내는 방법이다. 그 구체적인 의미 및 원리, 그리고 이를 C++로 구현해 본다. 주성분 분석에 대한 개념을 위하여 그 의미를 알 수 있는 간단한 몇 가지 예제에 이어 수학적인 원리를 간략히 살펴 본 후, 그것에 대한 C++을 이용한 구현을 다룬다. 실제 C++ 코드는 후반부에 있으므로 그 부분만 필요할 경우 바로 건너 뛰어도 된다. 하지만 될 수 있으면 이 글 전체를 반복해서 읽기를 제안한다. 또한, 독자가 대학 1, 2학년 정도의 기본적인 선형 대수 내용은 알고 있다고 가정한다. '주성분'에 대한 개념에 대한 감을 잡기 위하여 다음과 같은 상황을.. 2018. 3. 20.
파일 읽기 편하게 하기 텍스트 파일을 읽기 편하게 하기 위한 클래스를 만들어 보자. 간단한 사용 예는 다음과 같다. reader r; std::set all_compounds; while(r("compounds_in_treatment.txt",'#','\t')){ all_compounds.insert(r.begin()+2, r.end()); } 목적은 단순했다. while 문 안에 저렇게 해서 텍스트 파일을 한 줄씩 읽어들일 수 있게 하기 위한 것이었다. 더 이상 읽을 줄이 없거나 아니면 아예 애초에 파일을 열지 못했으면 false 가 반환되기 때문에 위처럼 해서 모든 줄을 읽을 수 있다. while 에 걸린 줄에 보면 첫 번째 인자는 파일 이름이고, 두 번째는 주석으로 간주할 줄이 제일 첫 칸에 어떤 문자가 있는지를 지정해 .. 2013. 5. 1.
원격 접속해서 컴퓨터 끄기 윈도우즈에서 원격 접속을 할 경우 접속당한 컴퓨터를 끄는 코드를 살펴 보자. 최종 사용자는 이 곳에 올려 놓는 exe 파일을 사용하면 끌 수 있다. 사용할 때, 접속이 끊기는데 끌 것이냐고 계속 묻는데 그럴 때마다 OK 를 누르면 꺼진다. 현재 시간과 사용자가 선택한 시간이 동일하면 꺼지거나 재부팅을 하게 된다. source code 는 Visual C++ 6.0 으로 작성되어 있으며, project file 을 이 곳에 올려 둔다 - 이것은 이 프로그램이 악성 프로그램은 아니라는 것을 보여주기 위함이기도 하다, ㅋ. 코드가 한 50여 줄 정도밖에 안되는 아주아주 간단한 프로그램이다. 공개할 목적으로 만든 건 아니고, 내가 필요해서 한 십여분 정도 뚝딱거려 만들어서 꽤 자주 사용하다가 생각이 나서 이 곳.. 2013. 1. 12.
RTF 파일과 CRichEditCtrl - 저장과 부르기 CRichEditCtrl 의 내용을 RTF 파일로 저장하거나, 혹은 RTF 파일의 내용을 CRichEditCtrl 로 불러 들이는 방법을 살펴 보자. 먼저, RTF파일의 내용을 CRichEditCtrl 로 불러 들이는 원리는 다음과 같이 도식화 할 수 있다. 즉, 파일이 있으면 그 파일을 접근할 수 있는 Stream 을 만들어 준다. 그 후 CRichEditCtrl 이 사용하는 콜백함수의 적당한 멤버들의 값 중 dwCookie 의 값에 이 스트림을 연결해 주면, CRichEditCtrl 은 다음과 같은 작업을 하면서 계속 콜백함수를 호출하다가 특정 조건이 되면 멈춘다. 1. 콜백함수는 dwCookie 로 주어진 스트림을 이용해서 파일 내용을 내부의 버퍼에 읽어 들인다. 2. 버퍼에 저장된 내용을 주어진 .. 2012. 5. 9.