'행렬 프로그램'에 해당되는 글 1

  1. 2009.08.03 오늘의 독학 - Matlab 1
Present/일기상자 | Posted by walkingcat 2009. 8. 3. 19:34

오늘의 독학 - Matlab


오늘의 해야 할일은 행렬이었습니다.

4x4  * 3x3  이런 행렬이 아닌 349x1 * 1x349 행렬

349^2 를 계산하면 무려 121801개라는 엄청난 수의 데이터를 만들어야합니다.  (벌써 멀미나는데)

추가로 저것을 엑셀로 정리하고 중복되는것은 삭제하고..

방대한 양의 작업;

최대 장애물은 숫자라면 어떻게 엑셀로 해보겠으나,

문자 행렬 -_- (토한다)

예를들어
          2x1 행렬                      *              1x2행렬                                                    =     ...
   [ 1 홍길동 xxx yyy zzz                 [1 홍길동 xxx yyy zzz, 2 고길동 xxx yyy zzz]    =
     2 고길동 xxx yyy zzz]

아 정리할 엄두가 안나네요 ,  저게 무려 349 -_-) 안에 들어가는 내용은 더 많습니다.

행렬 계산은 Matlab 이라는 프로그램을 쓰면 쉽다길래

처음 마주하게 되었습니다.

300백만원 짜리란 소리를 들었지만 그런거야 뭐 별 감흥도 없었고 -_-

딱보니 무슨 java 같이 생긴게 설명서는 온통 영어에 알수없는 소스코드 같은것만 잔뜩 있더군요;

첫인상은 java 나 c 같은 프로그램인 줄 알았습니다.




한참 멍하니 있다가 설명서에 나온 그림(!)만 보고 따라해보니 조금 감이 옵니다.

어느정도 프로그래밍 언어와 비슷한 면도 있구요. (프로그래밍 언어에 대해서 얕은 지식만 있어도 충분히 도움이 되는듯..)

예를 들자면

A = [1, 2, 3, 4, 5]

라고 입력하면  A 라는 것은 [ 1 2 3 4 5 ] 라는 행렬로 정의 됩니다.

B = [1; 2; 3; 4; 5]

이렇게 입력하면 B는 [ 1                 라는 5x1 행렬로 정의 되구요 ;
                               2
                               3
                               4
                               5]

A행렬과 B행렬을 곱하고 싶다!

면,  A*B 라고 입력해주면 계산되어서 나옵니다.  ㅎㄷㄷ

더 엄청난 것은 A' 이라고 입력하면 이것은 B와 같게 계산한다는 것입니다.

즉 A' = B .. 정말 엄청난 프로그램이군요.  (아 이런거에 감동받다니)

이렇게 좋은게 있는데 왜 학교에선 생고생을 해가며 손으로 B4용지를 가득 메웠을까요 ㅠㅠ;;


-----------여기서부턴 신경안쓰셔도 됩니다. 잘나가다가 결국은 파토나는 내용------------

문자열은 A= '문자'  로 지정하면 된다 길래

349개를 정리해서 다 입력하고 계산해 봤으나

out of memory , 아웃오브안중 아닙니다. 계산량이 너무 많아서 안된다는 겁니다.

' 슈발.. 설마 할 수 없는건 아니겠지 하며 -_-.. 패닉상태'

엑셀로 일일히 해야할 듯한 난관에 봉착하고,

'어쩔수 없다 , 힘들지만 행렬을 쪼개서 하자' 라는 생각으로 다시 도전.

* 행렬을 쪼개서 계산한다?

?x1 행렬이기에 해볼만 합니다.

10x1 행렬이라면 일단 5x1, 5x1 로 나눈다음 A, B라 생각하면

각각계산해서 [ AA' AB'   형태로 합쳐주면 되겠지요.
                     BA'  BB'] 

각설 하고, 결과는 개판;

변수 자체는 문자형태로 정의가 가능한데(String A= "고길동"; 처럼)

이런 변수끼리 계산을 해버리면 결과값은 엉뚱하게 숫자로 나와버립니다. 

(String * String = Double 이라니..  내가 고자라니..)

뭐 처음 프로그램 만져본놈이 뭘알겠느냐 만은 더이상 진전이 안되더군요;

결과 형태를 문자형태로 표현이 안되는가 흐앍..

제가 하고 싶은건 두개의 변수가 붙어서 출력되는건데 말입니다.


(행렬로 만들기 귀찮아서; 그냥 대충 표현합니다)
A1 = "고길동"

A2 = "홍길동"

A1*A2 = 고길동 홍길동

이거 하는 방법이 없나요 ㅠㅠ

내일 출근하면 하루종일 엑셀 노가다 해야될거 같음 흙..