S
은 고유 한 요소가있는 벡터이고, s
은 고유 한 요소가 포함되어 있습니다. 예 : S={1,2,3,4,5,6}
및 s={1,3,4,6}
. S[[i]]
는 s
의 요소 인 경우, 지금은 벡터 C=[7,0,8,9,0,7]
를 만드는 방법을 다른 벡터 c={7,8,9,7}
을 부여 즉, 다음 C[[i]]
다른 s
에 S[[i]]
제로와 동일한 인덱스 c
의 요소와 동일하다. 이것은 작동하지만 MATLAB 배경에서 오는, 내가 for
루프를 미워하고 위의 작업이 MATLAB에서 사소한 인덱싱 작업입니다mathematica에서 목록 색인 생성
C=Array[0&,Length[S]];
j=1;
For[i=1,i<=Length[S],i++,If[MemberQ[s,S[[i]]],C[[i]]=c[[j]];j=j+1;]];
처럼 내가 가진 무엇
지금 보인다. 이것을 달성하는 더 똑똑한 방법이 있다고 확신합니다. la mathematica 스타일. 누구 제안이 있습니까? 그래서 C 또는 0 인 요소 중 하나와 S의
이 아래 답변에 관련되지 않고,'C = 배열 더 나은 C = ConstantArray [0, 길이 '로 표현 [0 &, ...]'된다 [S]]'이며, 부팅하는 데 10 배 더 빠릅니다. –