Matlab의 두 불균등 행렬을 비교하고이 행을 추출하여 다른 행렬에 저장하십시오 (예 : D). 예를 들어,Matlab의 불균일 행렬 값 비교
tmp = [2245; 2345; 2290; 4576]
및
id=[1 2245 564 8890 123;
2 2445 5673 7846 342;
3 2290 3428 3321 908].
ID는 더 큰 행렬이다. 'id'에있는 tmp의 각 값을 찾으려고합니다. 아래 라인에있는 intersect 명령을 사용하여 tmp의 값을 포함하는 id 행을 찾을 수 있었지만, tmp의 각 값이 여러 번 반복 될 때마다 하나씩 tmp의 각 값에 대해 이렇게하고 싶습니다. 신분증. 나는 foreach를 사용해 보았습니다. 그러나 foreach는 char 유형 배열에 사용할 수 없다는 오류 메시지가 나타납니다. 아무도 이것에 대해 갈 방법을 제안 할 수 있을까요?
for j=1:length(tmp);
[D,itmp,id2] = intersect(tmp(j,1),id(:,2), 'rows');
루프를 사용 했음에도 불구하고 코드는 한 번에 하나의 값을 취하지 않습니다. 이것이 'foreach j'를 시도한 이유입니다. 또한 두 행렬에 공통적 인 행을 찾아 D에 저장 한 후에 행렬 id를 추가하여 id 내의 관련 행 옆에 j 값을 포함시키고 싶습니다. 예를 들어, tmp 내의 첫 번째 값이 행 1,3,5,10에서 id로 반복되는 경우, 나는 ID 1,3,5,10 행 옆에있는 값 1을 취할 수있는 ID 열을 원합니다. 이것에 대한 도움이 많이 감사 할 것입니다! 감사.