문제

나는 임의로 큰 논리적 인 논리적 배열을 테스트하고 있으며 한 명 이상 그들 중 사실입니다. any() 한 번에 단일 차원에서만 작동합니다. sum(). 치수 수를 테스트하고 반복 할 수 있다는 것을 알고 있습니다. any() 단일 답변을 얻을 때까지 더 빨리, 솔직하고 더 유명한 접근 방식을 원합니다.

아이디어?

나는 2009a (R17, Old Parlance에서 생각합니다)를 운영하고 있습니다.

도움이 되었습니까?

해결책

데이터가 매트릭스에있는 경우 , 이 시도:

anyAreTrue = any(A(:));

편집하다: 구문에 익숙하지 않은 사람에게 조금 더 설명하려면 ㅏ(:) 사용 콜론 운영자 배열의 전체 내용을 취합니다 , 치수가 무엇이든 상관없이 단일 열 벡터 (크기 숫자 (a) -by-1)로 재구성하십시오. 단 하나의 전화 어느 결과 열 벡터에서 작동하는 데 필요합니다.

다른 팁

지적한 바와 같이, 올바른 솔루션은 결과를 벡터로 재구성하는 것입니다. 그러면 원하는 결과를 얻을 수 있습니다. 따라서,

어떤 (a (:))

Numel (a) 요소가 사실이라면 전 세계적으로 결과를 제공합니다. 당신은 또한 사용할 수도 있습니다

모든 (reshape (a, [], 1))

재구성 연산자를 명시 적으로 사용합니다. 매트릭스를 벡터로 변환하기 위해 추가 단계를 수행하고 싶지 않다면 다른 접근 방식은 자신의 함수를 작성하는 것입니다. 예를 들어 다음은 다음과 같은 기능을 수행합니다.

======================

기능 결과 = Myany (a)

% A의 요소가 0이 아닌지 여부를 결정합니다.

결과 = Any (a (:));

======================

검색 경로에서 이것을 m 파일로 저장하십시오. Matlab의 아름다움 (모든 프로그래밍 언어)은 완전히 확장 가능하다는 것입니다. 원하는 능력이 있다면, 그 일을하는 약간의 관용구를 쓰십시오. 이 작업을 자주하면 요구에 맞게 환경을 사용자 정의 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top