Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 텝스공부
- 수치해석
- 논문작성법
- MATLAB
- Zotero
- matplotlib
- Statics
- 수식삽입
- 인공지능
- Numerical Analysis
- obsidian
- 딥러닝
- 텝스
- JAX
- Julia
- IEEE
- LaTeX
- 에러기록
- 우분투
- 생산성
- pytorch
- Python
- WOX
- Dear abby
- teps
- 논문작성
- 고체역학
- 옵시디언
- ChatGPT
- Linear algebra
Archives
- Today
- Total
뛰는 놈 위에 나는 공대생
[MATLAB] 배열에서 이상치 제거 및 조건에 맞는 요소 찾기 본문
데이터의 차원이 높아질 수록 개별 데이터를 확인하는 것이 어렵고 필요없는 데이터를 제거하는 것이 어려워진다.
이를 위한 다양한 방법들을 알아보기로 한다.
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보다 큰 원소들로 구성된 배열
a = sum( A>0.0 ) # A배열에 0.0보다 큰 원소들의 개수
$A>0.0$이라는 조건문 그 자체는 동일한 길이의 True(1), False(0)으로 나오기 때문에 이를 모두 더하면 조건을 만족하는 원소의 개수를 알 수 있다.
3. 조건에 맞는 요소의 인덱스 찾기
이 경우에는 find라는 함수를 사용할 수 있다.
find를 사용하더라도 조건에 맞는 값을 내뱉는 경우가 있고 인덱스를 출력하는 경우가 있다.
k = find(X<10,5) # X라는 행렬에서 10보다 작은 원소 5개 출력
[row,col] = find(X>0 & X<10,3) # 조건을 만족하는 원소의 행렬 번호 출력
꼭 MATLAB 함수가 아니어도 직접 구현도 쉽게 할 수 있는데 함수로 제공해주니 훨씬 편한 것 같다.
https://kr.mathworks.com/help/matlab/ref/find.html
https://kr.mathworks.com/help/matlab/matlab_prog/find-array-elements-that-meet-a-condition.html
https://kr.mathworks.com/help/matlab/ref/rmoutliers.html?s_tid=doc_ta
'프로그래밍 Programming > 매트랩 MATLAB' 카테고리의 다른 글
[MATLAB] 3D plot 축 반전시키기 (뒤집기) (0) | 2023.07.25 |
---|---|
[MATLAB] 경로추가 방법 (0) | 2023.06.28 |
[MATLAB] Figure 위치를 코드로 옮기기 (0) | 2023.03.02 |
[MATLAB] MATLAB에서 figure를 pdf로 export하기 (exportgraphics) (0) | 2023.01.30 |
[MATLAB] MATLAB 테마 바꾸는 방법 (0) | 2022.12.27 |
Comments