MATLAB의 벡터에서 0 제거하기

Ammar Ali 2022년8월18일
MATLAB의 벡터에서 0 제거하기

이 튜토리얼에서는 MATLAB의 find() 함수를 사용하여 벡터에서 0 값을 제거하는 방법에 대해 설명합니다.

MATLAB의 벡터에서 0 제거하기

벡터에서 0을 제거하려면 find() 함수를 사용하여 벡터에 있는 0의 위치 또는 인덱스를 찾아야 합니다. 이 함수는 0의 인덱스를 반환합니다. 그런 다음 빈 벡터 또는 null 벡터를 사용하여 빈 값을 할당할 수 있습니다.

기본적으로 find() 함수는 0이 아닌 요소의 인덱스를 반환하지만 find() 함수 내부에 조건을 넣어 0의 인덱스를 반환할 수 있습니다. 예를 들어, 일부 0을 포함하는 벡터를 정의하고 find() 함수를 사용하여 제거해 보겠습니다.

아래 코드를 참조하십시오.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0)
n(indices) = []

출력:

n =

     1     0     2     0     3     0


indices =

     2     4     6


n =

     1     2     3

위의 출력에서 ​​find() 함수가 벡터에 있는 모든 0 값의 위치를 ​​나타내는 인덱스를 반환한 다음 인덱스를 사용하여 빈 벡터를 0에 할당하는 것을 볼 수 있습니다.

find() 함수 내에서 n==0 조건을 정의했는데, 이는 함수가 벡터의 값을 하나씩 통과한다는 것을 의미합니다. 벡터 값이 0이면 인덱스를 반환하고 다음 값으로 이동합니다.

벡터에 있는 다른 값을 제거하거나 찾으려는 경우와 같이 다른 조건을 정의할 수도 있습니다. 보다 작음, 같음, 보다 큼, 보다 작거나 같음, 크거나 같음, 같지 않음과 같은 조건 연산자를 사용하여 find() 함수 내에서 조건을 정의할 수 있습니다.

모든 0 값을 제거하지 않고 처음 두 값과 같은 몇 개의 0 값만 제거하려는 경우 find() 함수의 두 번째 인수를 사용할 수 있습니다. 이 인수는 개수를 설정하는 데 사용됩니다. 출력 인덱스.

예를 들어 위의 예를 반복하고 벡터에서 처음 두 개의 0을 제거해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2)
n(indices) = []

출력:

n =

     1     0     2     0     3     0


indices =

     2     4


n =

     1     2     3     0

위의 출력에서 ​​처음 두 개의 0이 제거되고 세 번째 0이 주어진 벡터에 여전히 존재하는 것을 볼 수 있습니다. 기본적으로 find() 함수는 벡터의 시작 부분부터 요소 검색을 시작합니다.

그러나 벡터의 마지막 요소에서 검색 프로세스를 시작하고 방향을 설정하는 데 사용되는 find() 함수의 세 번째 인수를 사용하여 첫 번째 요소로 이동하도록 설정할 수도 있습니다. 방향을 설정하려면 find() 함수의 세 번째 인수에 last 문자열을 전달해야 합니다.

예를 들어 위의 예를 반복하고 주어진 벡터에 있는 마지막 두 개의 0을 제거해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2,'last')
n(indices) = []

출력:

n =

     1     0     2     0     3     0


indices =

     4     6


n =

     1     0     2     3

위의 코드에서 마지막 두 개의 0이 벡터에서 제거되고 첫 번째 0이 여전히 존재하는 것을 볼 수 있습니다. find() 함수에 대한 자세한 내용은 이 링크를 확인하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Vector