[MATLAB] 배열에서 이상치 제거 및 조건에 맞는 요소 찾기

2023. 8. 9. 10:37·프로그래밍 Programming/매트랩 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

 

0이 아닌 요소의 값이나 인덱스 찾기 - MATLAB find - MathWorks 한국

선형 인덱스는 단일 첨자 사용을 통해 배열의 요소를 참조할 수 있도록 합니다(예: A(k)). MATLAB®은 해당 배열을 각 열이 이전 열의 맨 아래에 추가된 단일 열 벡터로 처리합니다. 따라서 선형 인덱

kr.mathworks.com

https://kr.mathworks.com/help/matlab/matlab_prog/find-array-elements-that-meet-a-condition.html

 

조건을 충족하는 배열 요소 찾기 - MATLAB & Simulink - MathWorks 한국

이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?

kr.mathworks.com

https://kr.mathworks.com/help/matlab/ref/rmoutliers.html?s_tid=doc_ta 

 

데이터에서 이상값을 감지하여 제거 - MATLAB rmoutliers - MathWorks 한국

입력 데이터의 이상값 위치에 해당하는 논리형 이상값 표시자를 선택적으로 반환할 수 있습니다. 또한 이상값 감지 방법이 사용한 하한 임계값과 상한 임계값, 중심값도 반환할 수 있습니다.

kr.mathworks.com

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 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
'프로그래밍 Programming/매트랩 MATLAB' 카테고리의 다른 글
  • [MATLAB] 3D plot 축 반전시키기 (뒤집기)
  • [MATLAB] 경로추가 방법
  • [MATLAB] Figure 위치를 코드로 옮기기
  • [MATLAB] MATLAB에서 figure를 pdf로 export하기 (exportgraphics)
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability &amp; Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    논문작성
    MATLAB
    딥러닝
    teps
    WOX
    에러기록
    LaTeX
    Python
    논문작성법
    ChatGPT
    Numerical Analysis
    matplotlib
    서버
    Zotero
    IEEE
    옵시디언
    JAX
    Statics
    생산성
    수치해석
    pytorch
    고체역학
    인공지능
    Dear abby
    텝스공부
    Linear algebra
    텝스
    obsidian
    우분투
    Julia
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[MATLAB] 배열에서 이상치 제거 및 조건에 맞는 요소 찾기
상단으로

티스토리툴바