일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 수식삽입
- Linear algebra
- 옵시디언
- teps
- MATLAB
- WOX
- Python
- Julia
- 딥러닝
- matplotlib
- Dear abby
- 인공지능
- LaTeX
- obsidian
- pytorch
- 텝스
- 텝스공부
- 우분투
- 논문작성
- 생산성
- 고체역학
- 논문작성법
- ChatGPT
- IEEE
- 수치해석
- JAX
- 에러기록
- Statics
- Numerical Analysis
- Zotero
- Today
- Total
목록프로그래밍 Programming/매트랩 MATLAB (25)
뛰는 놈 위에 나는 공대생
데이터의 차원이 높아질 수록 개별 데이터를 확인하는 것이 어렵고 필요없는 데이터를 제거하는 것이 어려워진다. 이를 위한 다양한 방법들을 알아보기로 한다. 1. 이상치 제거 배열에서 이상치를 제거하는 함수는 MATLAB에서 R2018b 이후부터 rmoutliers로 제공하고 있다. 이상값 감지는 평균에서 3 표준편차를 초과해 떨어져있는 요소를 기준으로 한다. 기준은 평균, 중앙값 등 기준을 다양하게 잡을 수 있다. [B,TFrm,TFoutlier,L,U,C] = rmoutliers(kt_s_pred) ; # L : 하한 임계값, U : 상한 임계값, C : 중심값, TFoutlier : 이상값 표시자, TFrm : 제거된 데이터 2. 조건에 맞는 요소 출력 B = A(A>0.0) # A배열에서 0.0보다 ..
아래 그림을 보면 u(그림 상에서는 y축에 해당함)가 15일 때 x가 -15인 형태로 3d plot을 그렸다. 그런데 내가 원하는 것은 u가 15일 때, x도 15인 형태로 그리고 싶을 수 있다. 즉, x축을 반전시키거나 y축을 반전시키고 싶을 수 있다. plot할 때 X,Y축 자체의 순서를 바꿔서 plot하는 것도 방법일 수 있지만 3d plot은 X,Y,Z가 모두 행렬로 되어있기 때문에 이를 신경써서 바꿔주는 게 쉽지 않다. 따라서 다음 방법을 쓴다. figure ; s = surf(X,U,g1_true); s.EdgeColor = 'none'; xlabel('x') ; ylabel('u') ; set(gca,'Ydir','reverse') % 축 반전 다음과 같이 한 축을 반전시킨 다음에 돌려가면서..
MATLAB은 기본적으로 자신들이 지정해놓은 경로에서 파일을 찾아서 사용한다. 함수 파일을 따로 만들어서 쓰면 당연히 그 함수 파일을 읽을 수 있도록 함수 파일을 사용하는 코드가 있는 경로에 같이 함수 파일이 있거나 OR 경로에 함수파일이 있는 경로를 추가해야 한다. 1. 코드로 추가하는 방법 addpath라는 함수를 이용한다. addpath('C:/Users/user/문서/프로그램/') 이런 식으로 경로를 추가한다. 경로에 한글이 들어가도 다행히 된다. 2. 직접 추가하는 방법 위 그림의 경로 설정에 들어가서 여기에 추가하면 좋은 이유는 영구적으로 경로가 보존되기 때문에 MATLAB을 지웠다 켜도 경로를 계속 쓸 수 있다는 점이다. 다만 그 경로가 삭제되거나 할 경우에는 관리가 어렵기 때문에 보통은 항..
figure를 여러 개 그릴 때 figure가 겹쳐있어서 일일이 다 옮겨줘야하는 불편함이 있었다. 이 경우에 사용할 수 있는 함수가 movegui라는 함수이다. figure 핸들을 받아서 f = figure(1); movegui(f, 'south'); 와 같이 해도 되고 figure 핸들을 받지 않더라도 movegui(방향)만 사용하면 현재 figure 또는 콜백 figure를 옮겨준다. 예: movegui(f,[150 -50]) 예: movegui('west') 위의 같은 형태로 위치를 지정할 수 있다. 1. 직접 위치 지정 (이는 원래 figure 생성할 때도 수행할 수 있다) [x y]의 경우네는 x위치, y위치를 지정하는 것이다. x위치는 화면 왼쪽으로 부터 얼마나 떨어졌는지를 나타내고 y위치는 ..
1. Figure를 pdf로 저장하는 방법 MATLAB에서 일반적인 저장 방법을 이용해서 pdf를 export하면 다음과 같은 문제가 발생한다. 파일을 열어보면 a4 용지에 떨렁 그림이 그려져 있는 것을 확인할 수 있다. 실제 이 파일을 LaTeX에 쓰고 싶거나 하면 저 A4 용지 크기 그림이 그대로 들어가기 때문에 곤란하다. 그렇다고 png를 쓰자니 화질 때문에 걱정이 될 것이다. 원래 MATLAB은 이렇게 pdf로 export하는 문제가 있었는데 2020년부터인가 새로운 함수를 만들어주었다. https://kr.mathworks.com/help/matlab/ref/exportgraphics.html 위 링크에 들어가서 알 수 있는 것은, 이제 pdf를 손쉽게 저장할 수 있다는 것이다. ax1 = fi..
MATLAB 테마 바꾸는 방법은 2가지가 있다. 1. matlab-schemer 사용 아래의 github에서 code를 다운받아 사용하는 방법이 있다. https://github.com/scottclowe/matlab-schemer GitHub - scottclowe/matlab-schemer: Apply and save color schemes in MATLAB with ease. Apply and save color schemes in MATLAB with ease. Contribute to scottclowe/matlab-schemer development by creating an account on GitHub. github.com 여기에서 Download ZIP으로 다운받는다. 압축을 풀면 다..
MATLAB에서 그림을 그리다보면 그 주변 여백이 너무 크다는 생각이 들 수 있다. 그래서 MATLAB 그림을 여백없이 저장하는 방법을 찾아보았다. 1. MATLAB의 tiledlayout 기능 사용하기 x = 0:pi/4:2*pi ; t = tiledlayout(1,1,'TileSpacing','Compact','Padding','Compact'); nexttile plot(x,sin(x),'b-'); figure; plot(x,sin(x),'b-'); 위의 코드처럼 tiledlayout 에서 compact 옵션을 썼을 때와 일반 figure를 비교하면 다음과 같다. 왼쪽이 일반 figure로 그린 것이고 오른쪽이 tiledlayout으로 그린 것을 복사하여 파워포인트에서 테두리 기능을 넣고 비교한 것..
코드 작성 시 중간에 멈추었다가 실행자가 어떤 키를 누르면 다시 진행하게 만들 게 하고 싶을 수 있다. 그 경우에는 pause 함수를 사용한다. pause(1) 이라는 코드는 1초간 멈추는 코드지만, pause만 단독으로 사용할 경우에는 다음과 같이 쓸 수 있다. disp('Hit any key to next step.'); pause % next step disp('Next step.'); 위 코드를 실행하면 command window에 다음과 같이 display하려는 문구만 뜨고 >> 표시가 없다. 즉, 실행하다가 중간에 멈춘 것이다. 이 때 아무키나 눌러주면 다음처럼 실행이 쭉 된다. 실행 중간에 멈출 일이 있을 때 쓰면 좋은 방법 같다.
MALTAB plot 함수는 정말 많은 기능을 포함하지만 plot의 투명도를 조절하는 속성은 따로 없다. 이게 좀 충격적이여서 여기저기 방법을 찾아봤는데 다음과 같이 할 수 있다고 한다. x_test = 0:0.1:2*pi ; figure ; p = plot(x_test, sin(x_test), 'color', 'b') ; p.Color(4) = 0.5 ; figure ; plot(x_test, sin(x_test), 'color', 'b') ; 아래가 투명도를 0.5로 조절한 그래프이다. 투명도를 조절하지 않으면 다음과 같이 나온다. 생각보다 간단하게 해결할 수 있어서 다행이다. 끝.
과제를 하다가 그래프를 여러 개 그릴 일이 있었는데 이런 것에 적절한 add-on이 있을 것 같아서 찾아보았다. 쓰기 편리하고 괜찮은 add-on이 있어서 사용법을 기록해놓는 글. 1. Maximally Distinct Color Generator 애드온을 다운받는다. 다른 사람이 무료로 공개해놓은 애드온이기 때문에 그냥 다운 받을 수 있다. 여기 add-ons에 들어가서 검색한 다음에 install하면 된다. 2. 사용법 기본적으로 예제를 넣어놓으셔서 별 어려움 없이 쓸 수 있다. 아래가 만든 분이 써놓은 예시이다. (이 예시만 봐도 바로 응용해서 쓸 만하다.) >> N = 5; >> fun = @sRGB_to_OKLab; >> rgb = maxdistcolor(N,fun) rgb = 0 0 0.809..