Matlab이란? 무엇인가? 우리는 왜 Matlab을 써야하는가? 일단 Matlab이란 파이썬과 비슷하게 자연어에 가까운 고수준 언어이다. 여기서 고수준이란 수준이 높다는 것이 아닌 기계어 (이진수로 표현된 010100) 보다 우리가 흔히 사용하는 자연어에 가까운 언어를 이야기한다.
실상 Matlab자체가 기계어를 이해하고 싶어서 만든 것보다는 수학적 계산, 여러 신호 처리, 영상 처리, A.I.와 관련한 다양한 수치해석 등 다양한 형태에 대한 수치를 다루기 위해 만들어졌다. C언어 보다 더 고수준 언어이지만, 다양한 공학과 관련한 수학적 연산이 매우 빠르기에 많이 사용된다. 이전에 이야기한 Octave는 Matlab과 비슷하지만 Matlab을 따라가진 못한다. 그리고 우리의 선대가 만들어놓은 좋~은 함수가 많으므로 우리는 편하게 쓰면 된다. (물론 가져다 쓰는 것도 박사과정쯤 되면 못한다. 직접 만들어서 써야지 뭐... 굴러라 대학원생!)
요새 유명한 파이썬과도 비슷하다고 볼 수 있지만, 솔직히 공학과 관련한 연산은 Matlab이 매우 빠르기에 Matlab이 많이 사용된다. 빅데이터를 다루는 곳에서는 파이썬도 나쁘지 않은 선택이지만, 내 생각에는 다 써봐야 한다고 생각한다. 특정 범위에서는 Matlab이 이점이 있을 것이고 특정 분야에서는 파이썬이 좋을 것이다. 당연히 오픈 소스로써 파이썬은 좋은 대책이지만, 학생이라면 꼭 Matlab을 사용해보기를 추천한다. 정말 좋은 툴이다.
이러한 여러 장점을 가지고 있음에도 Matlab이 쓰기 꺼려지는 가장 큰 이유는 무료가 아니라는 점이다. 다른 프로그래밍 언어와의 호환성이 떨어지는 점, 그리고 단순히 공학적 연산을 하기 위한 스크립트 언어라는 점을 탈피하기 위한 여러 노력을 하고 있다. Matlab코드를 Java, C, C++에 적용할 수 있게끔 노력하는 중이다. 요새는 버전업을 통해 범용성을 늘려가려는 노력을 많이 한다. (General Purpose Progrmming Language를 달성하기 위해 노력하는 듯하다.) - 요새는 4차 산업 혁명에 발 맞춰서 머신러닝과 딥러닝 등 A.I 설계과 모델링에 맞추고 있는 모습을 보인다.
* 매트랩 자체가 수치 해석과 더불어 선형적인 모형을 다룰 수 있도록 설계되어 졌으므로 행렬(matrices)와 벡터를 사용하기 아주 편안하게 되어있다. (그래서 공대생은 매트랩을 쓰면 아주 편-안- 하게 느끼게 되는 것이다. 한번 써보면 헤어나올 수 없는 편안함 - 심지어 내가 설계 안했는데 석사 수준까지는 이미 준비되어 있는 편안함! 아 물론 없는건 만드셔야 합니다. 씽긋 ^ㅡ^)
간단하게 사용하기에는 좋지만, 심화학습을 위해서는 좋지 않아 결국에는 Matlab으로 돌아오게 되었다.
그래서 이번에는 Matlab을 배우기 위한 여러 레퍼런스를 소개하고자 한다. (당연히 추천 레퍼런스이며, 앞으로 Matlab과 관련한 포스팅은 이러한 레퍼런스를 기반으로 포스팅을 이어나갈 예정이다.)
* 설치 문제와 라이센스 문제는 이곳에서 다루지 않을 예정이다. 비싼 라이센스를 가지지만 이후에는 정말 쓸모가 많기 때문에 구매하는 것도 나쁘지 않다고 생각한다.
(학생이라면 당연히, 학교의 라이센스를 충~분하게 쓰시는게 정말 도움이 됩니다. 대학생은 기본적으로 학교에 라이센스가 존재합니다. 꼭 알아보고 쓰시기 바랍니다. )
( 일반인이라면 어쩔 수 없습니다. 구매하세요. ^ㅡ^)
역시 특정 프로그래밍 언어를 배우기 위해 가장 좋은 레퍼런스는 그 프로그래밍 언어를 배포하는 곳에 가서 직접 배우는 것이 가장 좋다. 그러므로 Matlab 공식 사이트에 들어가서 배우는 것이다.
우리는 당연한 일을 당연하게 간과하는 경향이 있다. 이걸 보고서 1차로 학습을 한 뒤에, 책을 쓰는 것이므로 당연히 기본 사이트에 들어가서 보는 것이 좋다. 하지만 처음 프로그래밍을 접한 사람은 이러한 방식은 힘들 수도 있다. 튜토리얼을 작성하는 사람마다 당연하게 생각하는 부분이 다르기에 차분하게 알려준다고 생각하진 않는다. 그러므로 처음 프로그래밍 언어를 배운다면 내게 맞는 책을 골라서 보는 것도 하나의 방법이다.
능동 : 문장의 주어가 동사의 동작을 실행하는 것을 능동태라 한다. 그렇다면 이러한 능동태는 어떤 의미를 가지는가? 행위자가 대상에 동작을 행하는것을 나타내는 것이 바로 능동태다. (그래서 동사 앞에 행위자(주어)가 오는 것이다.)
주어 (행위자) -> 동사(동작, 행위) -> 목적어 (동작 행위의 대상) [이러한 기본적인 사고의 흐름에 따라, 그 해석도 비슷하다. 주어가 어떠한 행위를 한다. 그 행위의 대상이 목적어이다.]
· 수동태
수동 : 수동태는 주어가 동사의 행위와 동작을 받거나 당하는 형태를 의미한다. 수동태는 어떤 일이 벌어진 것 자체, 일어난 일 자체가 중요하다!! 누가 그 일을 했는지는 중요하지 않다. 그렇기에 행위자를 모르거나, 행위자 자체가 중요하지 않은 것이다. 그르므로 행위의 대상을 이야기의 중요 요소로 놓고 싶을 때 수동태를 쓰는 것이다. (그래서 행위자는 동사 뒤에 오거나 언급되지 않는 것이 일반적이다.)
주어(행위의 대상) + be + p.p(주어진 동작, 행위를 이야기함) + by 목적어 (행위자)
J.J house was painted last year → J.J의 집은 작년에 페인트칠해졌다.
J.J painted the ceiling of the his house → J.J는 그의 집 천장에 그림을 그렸다.
1. 수동태 be p.p.
수동태 만드는 방법
능동ㄴ태 문장의 목저어를 주어로 옮긴다.
동사의 시제를 생각해서 be + p.p. (과거분사) 형태로 고친다.
능동태 문장의 주어를 목적격으로 바꾸어서 by + 목적격 으로 만들고 문장 끝에 둔다.
다른 수식어구는 그대로 냅둔다.
예를 들어보자면, 다음의 문장을
My sister draw the picture
→ [내 여동생이 그림을 그려줬다.]
수동태로 바꾸면
The picture drawn by my sister
→[그 그림은 내 동생에 의해서 그려졌다.]
의 형태로 바꾸어진다.
* 주의할 점 : 수동태 공부 자체는 능동태를 수동태로 바꾸고, 수동태를 능동태로 바꾸는 것이 학습의 중점이 아닌다. 이러한 행위를 하는 이유는 주어가 동사의 뜻을 행하는 주체인지, 아니면 동사의 뜻을 받는 대상인지 판단하는 것을 활용해서 자유롭게 사용할 수 있는 능력을 키우기 위함이다. 이를 주의하자!
2. 수동태에서 동작의 행위가 되는 대상
수동태 구문에서 [by + 행위자] 는 언제나 쓰여지는 대상이 아니다.
앞서 수동태를 쓰이는 상황에서 보았듯이, 수동태는 집중하고 싶은 대상이 있는 상태일 때 사용되는 것이 수동태이다.
예를 들어, 백화점에서 유리컵 매장을 구경하다가 모르고 유리컵을 깨서 매우 당황한 상태라 생각하자.
그러면 어머! 유리컵이 깨졌어! 이렇게 이야기할 것이다. ( '나'라는 행위의 주체는 빼고 이야기하는 것이 포인트이다.)
Glass was broken suddnely
→ [유리컵이 갑자기 깨졌어]
이러한 형태로 이야기하게 된다. 내가 깨긴 했지만, 그리고 잘못이란 것을 알고 있지만 누군가의 비난이 너무 두려운 상황이라면 '에구머니나 유리가 깨졋어 어떻하지?' 란 느낌일 때 사용한다. 이런 상황에서는 by + 행위자를 붙이지 않는다.
The results of the exam were announced yesterday.
→ [시험의 결과가 어제 발표되었어.]
이러한 발표의 행위가 중요하지 않은 상황에서 [by + 행위자]는 생략되곤 한다.
발표를 해준 주체가 중요한 것이 아니라 발표된 그 상황 자체가 중요한 것이라 [by + 행위자]가 생략된 것이라 생각하면 된다.
[by + 행위자] 가 생략되는 경우는 다음과 같다.
행위자를 누군지 정확하게 알 수 없는 경우
위에서 유리컵을 깬 상황처럼 행위자가 누군지 알리고 싶지 않은 경우
문맥상 행위자가 누군지 추측이 가능한 경우
행위자보다 그것을 한 행위(행동) 자체가 더 중요한 경우
그렇다면 [by + 행위자] 는 언제 쓰이는가?
행위자가 새로운 정보이거나, 행위자가 전체 행위에서 중요한 역할을 맡고 있다면 반드시 써야 한다.
Student will be taught by an expert
→ [학생은 가르침을 받을 것이다. 전문가에 의하여]
만약에 이 문장을
Student will be taught
→ [학생은 가르침을 받을 것이다.]
로 바꾼다면, 행위자가 정해지지 않은 상태로 누군가가 교육을 받을 것임을 암시함을 알 수 있다.
만약에 과외를 받는 상황이라 한다면, 첫 번째 문장은 선생님이 정해진 상황이고, 두 번째 상황은 가르쳐줄 선생님을 구하고 있으므로 아직은 누가 가르칠지 모른다는 의미를 갖고 있다.
[by + 행위자]가 항상 쓰이는 것은 아니다. by 이외의 다른 전치사가 이용되기도 한다.
감정을 나타내는 경우
be interrested in : ~에 흥미가 있다.
be surprised at[by] : ~에 놀라다
be satisfied with : ~에 만족하다.
be disapointed with[by, at] : ~에 실망하다.
상태를 나타내는 경우
be covered with : ~로 덮여 있다.
be known as : ~으로 알려져 있다.
be engaged in : ~에 종사하다.
be known to : ~에게 알려져 있다.
be filled with : ~로 가득 차다
be known for : ~으로 유명하다.
be caught in : (비 따위를) 만나다.
앞에서 학습한 바와 비슷하게 우리는 조동사와 함께 수동태가 쓰이는 경우도 있다.
이럴 때는 수동태의 형태와 조동사가 의미하는 바가 합쳐져서 헤깔리기 때문에 주의해야 한다.
능동태
수동태
조동사 + 동사원형
will teach ex) J.J will teach students J.J는 학생들을 가르칠 것이다.
will be taught ex) Students will be taught by J.J 학생들은 J.J에 의해 가르침을 받을 것이다.
현재진행
am / are / is teaching ex) J.J is teaching students J.J는 학생들을 가르치고 있다.
am / are / is being taught ex) Students are being taught by J.J 학생들은 J.J에 의해 가르침을 받는 중이다.
과거진행
was / were teaching ex) J.J was teaching students J.J는 학생들을 가르치고 있었다. (지금도 가르치는 중이다.)
was / were being taught ex) Students were being taught by J.J 학생들은 J.J에 의해 가르침을 받고 있었다. (지금도 가르침을 받는 중이다.)
현재완료
have / has taught ex) J.J has taught students J.J는 학생들을 가르쳐왔다.
have / has been taught ex) Students have been taught by J.J 학생들은 J.J에 의해 가르침을 받아왔다.
* 현재진행 : 지금하고 있는 행위에 대한 이야기를 할 때, 현재진행을 쓴다.
* 과거진행 : 과거 진행은 과거에 시작되고 이를 말하고 있는 지금에서도 계속해서 진행하고 있는 사건을 이야기한다.
말하는 시점보다는 이전에 이야기하였으며, 아직까지도 진행되는 것이다.
* 현재완료 : 현재까지 ~을 했는지에 대한 이야기, 과거로부터 이어져와서 지금에 와서 진행 중일 수도 있고, 지금에 와서 끝난 일일수도 있다.
* 진행형과 완료형의 차이점은 둘 다 과거로부터 지금까지 이어져온 것인데, 문장이 가지는 의미에서 차이가 난다.
진행형의 경우, 사건 자체가 중요할 경우에 사용되는 표현, 완료형은 사건으로 인해 생기는 결과 혹은 그로 인해 영향을 받는 것이 중요하다고 생각할 때 사용되는 것이다.
3. 4형식과 5형식 문장을 수동태로 바꾸는 방법
4형식과 5형식 문장의 경우 바꾸는 방법이 살짝 다르다.
앞에서 바꾼 문장은 [주어 + 동사 + 목적어] 형태의 수동태를 바꾸어 보았다.
그렇다면
[주어 + 동사 + 간접목적어 + 직접목적어]의 형태인 4형식 문장
[주어 + 동사 + 목적어 + 목적격 보어]의 형태를 갖는 5형식 문장은 어떻게 수동태로 바꿀 것인가?
4형식 문장의 경우
[주어 + 동사 + 간접목적어 + 직접목적어] 에서
간접목적어가 수동태의 주어가 되고, 직접목적어는 뒤에 그대로 둔다.
예를 들어,
J.J teaches usMath
→ J.J 는 우리에게 수학을 가르친다.
We are taught Math by on J.J
→ 우리는 수학에 대한 가르침을 받는다. J.J에게
이러한 형태로 변환됨을 볼 수 있다.
5형식 문장의 경우
[주어 + 동사 + 목적어 + 목적격보어]
목적어가 수동태에서 주어로 바뀌며, 목적어 뒤에 있는 보어는 be p.p. 뒤에 남아 있게 된다.
변환하면 → [주어 + be p.p. + 보어]의 형태로 바뀌는 것이다.
예를 들어,
J.J found his card missing
→ J.J는 발견했다, 그의 카드가 잃어버린 것을 [의역하자면, J.J는 그의 카드가 없어진 것을 발견했다.]