아래 두 명제를 보자. For $x, y \in \mathbb{R}$, 1) $\forall x, \exists y, x+y=0$ 2) $\exists y, \forall x, x+y=0$ 둘 중 하나만 참이다. 어느게 참일까? 명제는 앞에서부터 읽어야 한다. 그리고 각각의 한정자는 뒤의 모든 내용을 한정짓는다. 1) $\forall x, \exists y, x+y=0$ 임의의 실수 $x$에 대해서 뒤의 내용이 참이라는 뜻이다. 즉, 임의의 실수 $x$에 대해 어떤 실수 $y$가 존재하여 $x+y=0$을 만족한다. 라는 뜻이다. 간혹 아래와 같이 번역되는 경우가 있다. 임의의 실수 $x$에 대해 $x+y=0$을 만족하는 어떤 실수 $y$가 존재한다. 이런 방식은 위험하다. 순서가 뒤죽박죽이 되면서 오히려..
간단한 예제를 통해 K-최근접 이웃 알고리즘(K-Nearest Neighbor; KNN)에 대해 알아보고자 한다. 본 예제의 내용은 한빛미디어의 책 혼자 공부하는 머신러닝+딥러닝의 내용 일부를 매트랩으로 구현한 것이다. 본 예제 실행을 위해서는 Statistics and Machine Learning Toolbox가 필요하다. 1. 데이터 준비 % 빙어(smelt)의 길이와 무게 smelt_length = [9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]; smelt_weight = [6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7..
수치해석 강의 중 굉장히 좋은 질문을 받았다. 왜 fprintf를 쓸 때에는 뒤에 세미콜론을 안 붙여도 되나요? 관찰력이 좋거나 호기심이 많은 사람이라면 한번쯤 가져봄직한 의문이다. 이 질문에 대한 힌트는 함수의 반환값 존재 여부와 반환값 무시 여부에 있다. 우선 세미콜론은 연산 결과를 출력하지 않을 때 사용한다. >> e = exp(1) e = 2.7183 >> e = exp(1); >> 등호 =도 대입연산자라는 연산자이므로 대입연산의 결과가 출력된다. 그 결과를 보고 싶지 않다면, 즉 변수 e에 값을 대입만 하고 그 결과를 보고 싶지 않다면 세미콜론을 붙이면 된다. 반환값이 없는 함수를 호출하면 세미콜론 여부와 무관하게 아무것도 출력되지 않는다. function fun(x) x = x^2; end >..