두 개의 다른 크기의 배열을 비교하고 일치하는 값 위치의 별도 배열과 일치 값의 개별 배열을 얻는 방법.두 개의 서로 다른 크기의 배열을 비교하고 일치하는 값과 위치 중 하나를 별도로 배열로 가져옵니다.
나는 다른 크기 내가 두 배열을 비교하고 Y 좌표와 Ylocknew 유사한 값과도 일치하는 점의 인덱스 값을 포함하는 다른 배열을 포함하는 다른 배열을 얻으려면
Ylocknew = [0 1.0000 -4.3000 5.0000 -4.2000 7.0000 -7.4000 8.0000 1.0000 4.0000]
Ypos = [1 5 7 8 4]
의 두 배열이있다.
코드 :
Ypos(end:numel(Ylocknew))=inf
R_common =Ylocknew(Ylocknew==Ypos);
I = find(Ylocknew==Ypos);
예상 출력 값 :
:나는이 새로운 배열
Yposlocknew = [1 5 7 8 4]
Yposloc = [2 4 6 8 10]
사용 된 접근이 필요 모든 인덱스를 들어
RST_intersection = (intersect(Ylocknew,Ypos)) Output for similar values : RST_intersection = [ 1 5 7 8]
(나는 시도) :
RST_intersection = find(intersect(Ylocknew,Ypos))
결과는 내가이 일을 시도하고
RST_intersection =[ 1 2 3 4]
(즉 잘못된 것입니다)하지만 나에게 빈 행렬을주고있다 크기 1 * 0의
루프를 사용하지 않고이 작업을 수행하는 모든 빠르고 쉬운 방법은 가능한 한 많은 프로세스를 가속화합니다.
이것은 ismember와 함께 얻는 결과이지만 잘못된 ismember는이 명령을 시도한 값을 복제합니다. 그리고 왜 이것이 최후의 끝 1이 맞지 않는지 이유입니다. 저는 Ypos와 Ylocknew를 매치 시켜서 반복하지 않고 행렬을 구해야합니다. Ypos는 값을 가지고 있습니다.이 값들이 같은 순서로 avaiable 인 위치가 필요합니다. – Peter