행렬이 distance = [d11,d12,d13,d14;d15;...;dn1,dn2,dn3,dn4,dn5];
이고 벡터가 index(n,1)
입니다. 인덱스의 값은 1에서 5 사이입니다.루프가없는 Matlab 연산
벡터 R (1,5) 인 경우 인덱스에 따라 거리의 합을 구합니다.
예 : 실행시의 경우를 최소화하기 위해 경우 조건 5 :
distance = [1,2,4,1,2 ; 4,5,6,1,6 ; 7,8,9,5,8] and index = [1;1;3]
그래서, 내가 조건은 1 이상의 루프를 사용하지 않는 것입니다 R(1) = 1+4 = 5, R(2) = 0, R(3) = 9, and R(4) = R(5) = 0
을 원하는 수십억 포인트가 있습니다.
아마도 arrayfun이 가능할 수도 있지만 성공하지 못할 수도 있습니다.
안부
감사합니다. 이제 저는 R의 각 가치를 정상화하고 싶습니다. 저를 도와 줄 수 있습니까? 루프없이 작업하는 데 어려움이 있습니다 ... – gpbdr13
'R'을 길이 1, 즉'R (1) = 5/14'와'R (3) = 9/14'로 정규화 하시겠습니까? 너의 모범? – hbaderts
나는 해결책을 찾는다 : A = bsxfun (@eq, index, 1 : 5) R = 합계 (bsxfun (@eq, index, 1 : 5). * 거리, 1) ./ 합계 1 : 5)); – gpbdr13