반응형
1*N인 벡터 a의 원소 중 하나가 다른 원소의 완전 제곱수인지 판단하는 함수를 만들어보자.
ismember(a,b)는 a의 데이터를 b에서 찾은 경우 논리값 1(true)를 포함하는 배열을 만들어 낸다.
예를 들어 a=[1 2 3 4], b=[2 4 6 8 10]인 경우 ismember(a,b)를 사용하면 [0 1 0 1]을 반환하고, 이는 a(2)=2, a(4)=4가 벡터 b에도 존재한다는 것을 의미한다.
any(a)는 배열 A의 모든 요소가 0이 아닌 숫자이거나 논리값 1(true)인지 판단하는 함수다.
any([0 0 0])은 0(false)를 반환하고, any([1 0 0])은 1(true)가 첫번째 요소에 존재하므로 1(true)를 반환한다.
이제 이를 이용해서 원소 중 하나가 다른 원소의 완전제곱수인지 판단하는 함수를 만들어보자.
a=[1 4 9 16];
ANS=Check(a)
function Logic = Check(a)
Logic=any(ismember(a.^2,a));
end
이것은 a를 제곱한 원소가 a 행렬에 있는지 확인하고, 하나라도 있으면 any()를 사용해 True를 반환하는 함수이다.
출력은 다음과 같다.
따라서 어떤 값이 하나라도 벡터에 포함이 되어있는지 알고 싶은 경우, ismember()와 any()함수를 활용해서 구할 수 있다.
반응형
'Matlab' 카테고리의 다른 글
[Matlab] 행과 열 제거하기, 추가하기, 삽입하기, 순서 바꾸기 (0) | 2023.04.29 |
---|---|
[Matlab] 1 2 2 3 3 3 4 4 4 4 만들기 : repelem(v,n) (0) | 2023.04.29 |
[Matlab] 문자열 행렬에서 일치하는 문자 인덱스 찾기 : strcmp, logical array (0) | 2023.04.24 |
[Matlab] logical 배열(array)? (0) | 2023.04.24 |
[Matlab] z = f(x,y) 푸는 방법 : meshgrid (0) | 2023.04.24 |
댓글