다차원 배열의 요소 방향 조건을 Matlab의 하나의 논리 변수로 줄이는 가장 우아한 방법은 무엇입니까? if 조건과 주장이 많은 큰 프로젝트에이 작업이 필요합니다. Matlab 설명서 about logical arrays 및 find array elements에는이 문제에 대한 해결 방법이 없습니다.Matlab에서 다차원 배열의 여러 요소 방향 조건 중 하나의 논리 변수 추출
A = [0,1;0,0]
B = [0,1;1,0]
내 바람직한 용액 원경된다 :
myBool = any(A(:)==1 & B(:)==1)
행렬 A
및 B
동일한 위치에서 두 사람이 존재 IFF에
예를 들어, 논리 변수 myBool
는 사실 그러나 최단 솔루션처럼 보이지는 않으며 배열 인덱싱에서는 작동하지 않습니다.
매우 읽을 수있는 짧은하지만 솔루션 :
myBool = any(A(B==1))
가장 큰 문제는 높은 차원 배열에 대한 nnz 같은 기능()뿐으로, 콜론 (:)없이 하나 개의 차원으로 순서를 줄일 수 있다는 것입니다 콜론은 배열의 일부를 인덱싱 할 수 없습니다.
: 당신은 선형 인덱싱을 사용할 수있는 대안
: 당신은 작은 후 vectorising 익명 기능을 사용할 수 있습니다. 그러나 당신은 그것이 아니라고 말합니다. 왜 그럴 수 있니? 배열 인덱싱에서 작동하지 않는다는 것은 무엇을 의미합니까? –
어떻게 든 콜론 운영자를 우회하는 것이 가능할 것이라고 생각했습니다. @Dylan Richard Muir의 해결책은 색인 생성 문제를 해결합니다. – JaBe