본문 바로가기

분류 전체보기

C 언어 - 파일 입출력 C언어 파일 입출력을 공부해 보았다. 사실 여기는 C보다는 파이썬이 압도적으로 쓰기 편하다. 그치만 나는 C를 사랑하는 전자과다. 예제를 보면서 시작해보자 12345678910111213141516#include int main() { FILE *fp; fp = fopen("a.txt", "w"); if (fp == NULL) { printf("error"); return 0; } fputs("hello world!!\n", fp); fclose(fp); return 0;}cs 이렇게 예제를 돌리면 될 줄 알았지?? 역시 안된다~~ fopen때문에 warning이 뜬다. 나는 찝찝한 것은 참지 못하기에 fopen_s를 사용하겠다! 12345678910111213141516171819#include int..
C 언어 if-elseif-else문을 한 줄로! 12345678910__inline int max(int a, int b){ if (a > b) return a; else return b;}int main(int argc, char **argv) { printf("3 과 2 중 최대값은 : %d", max(3, 2)); return 0;}Colored by Color Scriptercs 다음과 같은 인라인 함수가 있다고 하자, 사실 두 수 중에서 큰 값을 반환하는 아주 간단한 함수이고, 그래서 인라인 함수로 만든 것이기도 하다. 이를 함수로 따로 만들지 않고 한 줄로 표현하고 싶다면 어떻게 해야 할까?? 1234int main(int argc, char **argv) { printf("%d 과 %d 중 최대값은 : %d \n", 3, 2, 3 > 2 ..
Kalman Filter 공부했다. - 2 차원 이동 실습 지난 시간에 1차원에 대한 칼만 필터를 설계해 보았었다. 그 코드를 잠시 보자면 123456789101112131415161718192021222324252627measurements = [1., 2., 3.] x = matrix([[0.], [0.]]) # initial state (location and velocity)P = matrix([[1000., 0.], [0., 1000.]]) # initial uncertaintyu = matrix([[0.], [0.]]) # external motionF = matrix([[1., 1.], [0, 1.]]) # next state functionH = matrix([[1., 0.]]) # measurement functionR = matrix([[1.]..
C 언어 - linked list를 노드로 구현해 봤다. 자료구조 중에서 가장 기초가 되는 형태가 Linked List이다. List들이 서로 이어져 있는 모양인데, 이를 노드라는 기본형들의 연결로 만들어 본다. 노드란 놈은 이렇게 생겼다. 원하는 데이터를 담고 있는 부분과, 다음 연결된 노드를 가리키는 포인터로 구성이 되어 있다. c코드로 나타내 보자면 아래와 같이 생겼다. 1234struct Node { int data; /* 데이터 */ struct Node* nextNode; /* 다음 노드를 가리키는 부분 */};Colored by Color Scriptercs 우리가 실행시켜 볼 main문은 다음과 같이 생겼다. 12345678910int main() { struct Node* Node1 = CreateNode(100); struct Node* No..
C 언어 문자를 숫자로 & 숫자를 문자로 문자를 숫자로 바꾸어 주는 함수는 atoi()이고 stdlib.h에 들어있다. 이는 표준 함수이고 자주 쓰이도 한다. 반대로 숫자를 문자로 바꾸어 주는 함수는 itoa()인데 이는 비표준 함수여서 MS계열인 Visual Studio에서는 쓸 수 있지만 보든 환경에서 쓸 수 있다고는 보장할 수 없다. 이 두 함수들은 정수들 사이에서만 변환이 가능하다, 소수는 못한다. 그리고 범위를 넘어가는 큰 수도 불가하다. 각종 알고리즘 문제들을 풀다 보면 종종 이들이 쓰일 때가 있는데, 이를 구현해 본다. 1234567891011121314151617char* itoa(int val, char * buf, int radix) { char* p = buf; while (val) { if (radix
Convolutional Neural Network 공부했다.(2) CNN이 양이 상당해서 파트 2로 나누어서 포스팅을 한다. Object Detection!! 이름과 사진에서 바로 직감이 왔을 것이다. 그 동안에는 하나의 물체에 대한 판별을 하였다면 이번에는 다양한 물체가 있는 사진에서 각각의 물체가 무엇인지 인식하는 것을 해 보려 한다. 어떻게 할 수 있을까?? 생각을 조금 해 보았다. 사진에서 물체 같아 보이는 것을 자르고 이것만 CNN을 돌려서 무엇인지 알아낸 다음 다시 그 위치에 Bounding Box를 쳐준다~ 으, 손봐야 할 것이 많다. 옛날에는 이렇게 했다고 한다. Object Detection에 대해서도 배포되는 모델들이 있다. 이들을 사용해서 Transfer Learning을 할 수도 있는 Pretrained 모델이다. 나는 개인적으로 YOLO에 대해서..
('잠'을 읽고) 이 글을 읽는 여러분들은 잠을 잘 자고 있는가? 꿈을 자주 꾸는가? 어떤 사람은 눕자마자 잠에 들기도 하고, 한번 잠에 들면 주변이 아무리 시끄러워도 일어나지 않는 사람들도 있는 반면, 새벽녘이 다가옴에도 말똥한 눈으로 지새우는 사람들도 있다. 더욱이 스마트폰과 개인용 PC를 보다 자는 것이 당연하게 생각되는 요즘, 불면이라는 것은 더 이상 간단한 개인의 문제가 아니게 되어 버렸다. 잠을 자도 피곤이 가시지 않는가? 숙면을 취하고 싶은가? 아마 이는 모두의 문제가 아닐까? 항해사 아버지와 잠을 연구하는 어머니 사이에서 태어난 주인공은, 어린 시절부터 꿈과 잠 훈련을 받는다. 효율적인 수면을 취하고, 꿈의 컨트롤을 통해 학습의 효과도 얻을 뿐더러 신체가 성장할 수 있는 최적의 휴식을 취한 그는 신경계 의사..
Convolutional Neural Network 공부했다. AI-PM의 마지막 강의인 Convolutional Neural Network(CNN)이다. 딥 러닝이라고 했을 때 가장 먼저 생각나는 대표적인 알고리즘이다. 그리고 딥 러닝 붐을 일으킨 장본인이기도 하다. 이전 Neural Network에서 실습했던 구조는 다음과 같다. 모든 뉴런들이 서로 거미줄 같이 촘촘하게 연결되어 있었다. 그래서 학습시켜야 할 매개변수들도 무지하게 많았었다. 이러한 구조를 Fully Connected Layer 구조라고 한다. 나도 그렇고 이 Fully Connected Layer가 가진 고질적인 문제들이 있다. 위에서 밝히고 있는 바와 같이 매개변수가 너무 많아서 연산이 복잡함은 물론이고, 서로 관계가 없는 픽셀들 사이에도 패턴을 찾으려고 한다. 이것이 무슨 뜻인지 글로만 보아..