2013-08-14 2 views

답변

1

내가 정확히 따라하면 나도 몰라하지만이 당신이 뭘 하려는지 생각 :

A = [1 2; 
    3 4; 
    5 6; 
    7 8]; 

B = [3 4; 
    7 8]; 

for i = 1:size(B,1) 

    indTraining(i,1) = find(ismember(A, B(i,:), 'rows')); 

end 

indTraining 지금 [2, 4]입니다. 다음과 같이 더 쉽게 달성 :

[~, indTraining] = ismember(B, A, 'rows') 

없음 루프는 필요하지 않으며 find. Matlab의 공통 기능에 find을 사용하고 있다면, 많은 함수에 대한 두 번째 또는 세 번째 출력이 종종 함수의 인덱스가되고 문제를 줄일 수 있기 때문에 먼저 해당 함수의 문서를 확인해 보는 것이 좋습니다. max의 두 번째 출력

a very useful function을 마스킹하기 때문에 마지막으로 all을 matlab에서 변수 이름으로 사용하지 마십시오.

+0

참고 ismember (B, A ...'ismember (A, B ...)가 아니라 입력을 뒤집어야합니다. 또한 '0'을 얻지 못합니다. – Dan

+0

예 my 나쁘다. 나는 코멘트를 삭제할 것이다. – craigB

관련 문제