2017-12-11 4 views
1

목록 번호에 대해 롤링 윈도우 30의 값을 계산하는 함수를 사용하고 싶습니다. 구체적으로 말하자면, 100 개의 숫자 목록으로, 0부터 29까지의 숫자를 먼저 계산 한 다음 1에서 30까지의 숫자를 사용해야합니다. 함수가 아래의 경우 마지막 J에서 회전 계산을 수행하는 루프를 사용하는 방법

cumulativeR=: 4 : 0 
a=.(x+30)}y 
b=.x{y 
(a-b)%b 
) 

내가 잠시 나에 대한 같은 루프 기능을 사용하려고했습니다. 마지막으로 나는 결과의 목록을 얻을 필요가 71에서 100 (70 수)해야하지만, 난 그냥 쓸 수 없습니다 좋아해.

x=.1 2 3 4 5 6 ………… 70 
f=:3:0 
'x y z'=. y 
r=.0 
for_i. x 
do. i{r =. z cumulativeR y 
end. 
)  

나는 결과 목록을 얻을 수 없다.

답변

2

관용적 인 해결책은 \ dyadic adverb을 사용하는 것입니다.

5 ]\ i.10 
0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 
4 5 6 7 8 
5 6 7 8 9 
+0

대단히 감사합니다. 나는 또 다른 질문이있다. 한 번에 각 행에 함수를 어떻게 사용해야합니까? 예를 들어, \ : @ \ :을 각 행에 사용하려면 어떻게해야합니까? – Anne

+0

이 예제는']'를 함수로 사용하지만 더 일반적으로는'f = '함수를 정의 할 것입니다. \ : @ \ :'그런 다음이 답과 같이 적용하십시오 :'5 f \ data''data'는 100 개의 항목 목록입니다. – Dane

관련 문제