일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- teps
- 에러기록
- Julia
- 생산성
- WOX
- 논문작성법
- 논문작성
- MATLAB
- Statics
- 수치해석
- 수식삽입
- Dear abby
- 우분투
- IEEE
- Zotero
- 딥러닝
- obsidian
- Numerical Analysis
- 텝스
- 옵시디언
- 고체역학
- Linear algebra
- 텝스공부
- LaTeX
- ChatGPT
- JAX
- pytorch
- 인공지능
- matplotlib
- Python
- Today
- Total
목록프로그래밍 Programming (94)
뛰는 놈 위에 나는 공대생
키워드 : 로컬 함수, 중첩 함수, 익명 함수, 프라이빗 함수 MATLAB에 기본적으로 만들어져있는 내장함수도 많지만 본인이 직접 원하는 함수가 필요할 때가 있다. 예를 들어 내가 아는 $f(x)=x^{3}+x^{2}+x+3$ function이 있을 때 이를 symbolic function으로 정의해서 대입하기 보다는 사용자 정의 함수를 만들어서 그 함수에 대입을 하고 return을 받는 것이 코드 속도가 훨씬 빠르기 때문이다. 사용자 정의 함수를 만드는 방법은 크게 1. .m 코드 내에서 function을 만드는 방법 2. function을 단독으로 하는 .m 코드를 만드는 방법 으로 분류할 수 있다. 1. 실행 코드 내에서 function을 만드는 방법 1번 방법 먼저 살펴보자. 1) 익명함수 간단한..
MATLAB에서 그래프 제목을 명확하게 쓰는 것은 중요합니다. 나중에 그래프 저장하고 나서 제목을 제대로 안 쓰면 무슨 그래프였는지 까먹는 일이 다반사이기 때문입니다. 그런데 제목에 $\gamma$나 $\alpha$처럼 그리스 문자를 쓰고 싶거나 수식을 넣고 싶을 수 있습니다. 그럴 때는 title('$$\alpha = 0.2 $$','interpreter','latex') 이런 식으로 '$$'를 사용하면 됩니다. 또는 '$'를 사용합니다. 보통 latex에서 문장 내에서 수식삽입할 때는 '$'를 쓰고 equation을 따로 쓸 때는 '$$'를 쓰기 때문에 '$'를 쓰는 게 더 자연스러워 보이겠네요. 예제 코드 t = 1:0.01:10 ; alpha = 0.2; x = alpha * t.^2 ; figu..
나는 Jupyter notebook을 쓸 때 눈의 피로도를 낮추기 위해서 테마를 어두운 색으로 적용했다. jupyter notebook theme를 적용하는 라이브러리를 사용해서 이렇게 했는데 문제는 plot을 그릴 때 matplotlib은 기본적으로 tick과 글씨들이 모두 검은색으로 적용이 되면서 plot이 잘 안 보이는 문제가 발생했다. 위의 그림처럼 된다. 그래서 두 가지 방법이 있는데, 1. matplotlib에서 쓰는 style 자체를 바꾸는 것 2. figure의 face color를 white로 바꾸는 것 1번 방법 그래프를 그리기 전에 다음과 같은 코드를 사용한다. plt.style.use('seaborn') use() 괄호 안에는 여러가지가 들어갈 수 있는데 'seaborn'은 그래프를..
sym을 이용해서 symbolic 식을 쓰면 편리하게 기호가 들어간 식 계산을 수행할 수 있다. 그런데 그렇게 계산하던 중에 분수가 들어가는 경우 다음과 같이 분수가 제대로 계산되지 않고 길게 늘어진 것을 확인했다. 굳이 식을 확인하지 않으려면 무시하고 써도 상관은 없지만 보기 편하게 하기 위해서 다음과 같은 코드를 사용했다. pos라는 식이 저장된 변수를 각 소수에 대해 다섯자리만 나오게 하려면 vpa(pos,5) 다음과 같이 입력하면 된다. pos 대신 자신이 만든 식을 넣으면 된다. 그렇게 하면 분수가 계산되어서 위처럼 간단하게 식을 볼 수 있다.
MATLAB에서 결과를 plot하고 싶을 때 유용한 기능들을 모아놓고 쓰려고 기록하는 글. 1. Plot할 때 디폴트 속성 지정하기 plot을 많이 쓰면 일일이 plot의 디테일을 지정해주는 게 번거롭고 귀찮다. 그럴 때는 아예 figure 디폴트 속성을 지정해놓으면 된다. 내가 자주 쓰는 명령은 다음과 같다. set( groot, 'defaultLineLineWidth', 1.5 ) ; % plot line 두께 지정 set( groot, 'defaultAxesXGrid', 'on' ) ; % x축 방향으로 grid 생성 set( groot, 'defaultAxesYGrid', 'on' ) ; % y축 방향으로 grid 생성 set( groot , 'defaultAxesFontSize', 12 ); %..
매트랩에서는 다양한 자료형을 지원하고 있다. 그 중에서 string과 char에 대해서 이야기하려고 한다. 이렇게 string과 char를 특정해서 이야기하는 이유는 string과 char의 차이를 모르고 두 문자형의 데이터를 결합하려고 하면 문제가 생기기 때문이다. 보통 MATLAB Code를 돌리고 나서 나온 결과값을 .mat이든 .csv, .txt든 저장을 하고 싶을 수 있다. 이 때는 파일명을 특정해줘야하는데, 파일명은 문자이다. (데이터형의 문제가 아니라 진짜 그냥 문자이다.) 따라서 파일명을 filename = "hello.mat" save(filename, 'var.mat') % 변수이름이 var일 때 이런 식으로 저장을 할 수 있다. 하지만 파일명이 지속적으로 바뀌어야 하는 경우나, 파일을..
혼자 끄적이는 포인터와 배열에 대한 관계에 대한 글입니다. 정식된 내용은 책이나 다른 자료를 참고하세요. 1. 배열 이름은 무엇을 가리키는가? 정수 배열 int a[3]이 있을 때 a를 출력하면 a[0]을 가리키는 주소값으로 리턴한다. a는 a[0]에 대한 포인터처럼 사용되는 것이다. 2. 배열 이름은 포인터와 똑같은가? 그러면 배열 이름인 a와 포인터와 동일시해도 되는 것인지 의문이 든다. 하지만 배열 이름 a와 일반 포인터 int *p (p는 임의로 정한 것)와는 차이가 있다. 포인터를 ++연산자를 사용했을 때 포인터가 가리키는 타입이 차지하는 메모리 바이트만큼 포인터가 가리키는 주소값 + 메모리 바이트 수(int는 4바이트 등)로 리턴하는데 배열 이름 a는 a++처럼 사용해도 a 자체는 고정된 주소..
명령어 의미 git clone (원격 저장소 주소) (지역저장소 디렉터리 명) 원격 저장소를 지역 저장소로 복제함 git fetch 원격 저장소의 커밋을 가져오기만 하고 병합하지는 않음 git checkout FETCH_HEAD 페치로 가져온 정보가 있는 브랜치(FETCH_HEAD)로 이동함 git merge FETCH_HEAD 페치로 가져온 정보가 있는 브랜치(FETCH_HEAD)를 master 브랜치에 병합함 git checkout -b (브랜치 이름) (브랜치 이름)을 만드는 것과 동시에 체크아웃함 git push origin (브랜치 이름) (브랜치 이름) 브랜치의 커밋을 원격 저장소에 올림 내가 브랜치를 만들어서 원격 저장소에 올렸을 때 다른 사람이 그 코드를 검토하고 병합을 결정할 수 있습니다..
지역 저장소와 원격 저장소(깃허브) 사이에서 파일을 가져오고 백업하기 위한 명령어 명령어 의미 git remote add origin (저장소 주소) 원격저장소(remote)에 origin(저장소 주소가 가리키는 깃허브 repository)을 추가함 - 저장소 주소는 깃허브에서 복사할 수 있음 git remote -v 원격저장소에 원하는 주소가 잘 연결되어 있는지 확인 git push -u origin master 지역 저장소의 커밋을 맨 처음 원격 저장소로 올림 // 지역 저장소의 브랜치를 origin(원격 저장소의 master 브랜치)로 푸쉬함 (-u 옵션은 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위함) git push (origin master) 한 번 연결되었으면 그 ..
깃에서 유용한 기능 중 하나는 브랜치를 만드록 병합할 수 있다는 점입니다. 깃에서 처음 시작할 때는 master라는 브랜치가 만들어지고 HEAD는 이 master 브랜치를 가리키고 있습니다. (설정에 따라서 main으로 브랜치가 생성되기로 하는 듯) 이 master 브랜치에서 파일을 만들다가 새로 브랜치를 만들면 기존 master 브랜치에 있던 기록을 가져오면서 독립적으로 파일을 수정할 수 있습니다. 그러다 새 브랜치에서 master 브랜치에 병합merge할 수 있습니다. 명령어 의미 git branch (브랜치 이름) 원하는 브랜치 이름으로 새로운 브랜치 생성 git checkout (브랜치 이름) 브랜치로 체크아웃함 git log --oneline 커밋 로그에서 한 줄에 한 커밋씩 표시함 git ad..