2017-11-20 12 views
0

2 차원 배열이며 매우 큰 (8000x6000) 배열이 있습니다. 가 동일한 어레이 (COND1 및 cond2)에 대해 만족 한 두 조건이 나는 두 조건matlab에서 2 조건을 만족하는 공통 색인을 찾으십시오.

F=rand(8000,6000); 
ind1=find(F>0.5);ind1 stores indices that satisfy cond1 

번째 조건 (cond2)을 만족시키는 상기 공통의 인덱스를 찾는, 그들을 조정하고자하는 인덱스 여부 조건을 만족시킨다. 조건이 만족 될 때의 값이 하나의 상태에서 새로운 조건이 만족되지 않을 때

newF=zeros(8000,6000); 
[x,y]=meshgrid(1:6000,1:8000); 
newF(x+y>200)=1; 

새로운 배열 newF는 0 값을 갖는다.

두 조건을 모두 만족하는 F 및 newF에 대한 공통 색인을 찾고 싶습니다. 나는 내가 IND1 및 R을 조정하지 못했습니다

[r,c]=find(newF>0) 

IND2 (R, C)를 발견했을 때 는, C는 일반적인 인덱스를 찾을 수 있습니다. 누군가 나를 도울 수 있습니까?

+0

색인은 cond1에 저장됩니다. 고맙습니다. –

+0

완료! 고맙습니다. –

답변

3

조건을 적용하여 얻은 논리 행렬에 element wise을 곱한 다음 find을 사용하여 공통 행과 열 첨자를 찾습니다. 즉

[r, c] = find((F>0.5) .* (newF>0));  
% .* is also replaceable by &. Use whichever is faster 
+0

감사합니다. 그것은 효과가 있었다. &를 사용하면 내 경우에 훨씬 빠릅니다. –