취하다
cubeAndAdd<-function(x,y){x^3+y^3}
outer(-1:1,-1:1,function(x,y) Vectorize(cubeAndAdd(x,y)))
이것을 실행하면 경고 메시지가 표시됩니다.
Warning message:
In formals(fun) : argument is not a function
왜 이런거야? 어쨌든 내가 진정으로 함수를 사용하지 않았다면이 코드는 전혀 실행되지 않을 것입니다.
문제는 당신이 Vectorize
.
Vectorize
인수로 함수를 원합니다. cubeAndAdd
은 함수이지만 cubeAndAdd(x,y)
함수 호출 입니다.
당신하려면 outer
올바른 구문의 루프를, 당신은 사용해야 Vectorize
벡터화 기능을 만든 다음 그 새로운 함수를 호출 :
outer(-1:1,-1:1,function(x,y) Vectorize(cubeAndAdd)(x,y))
여기에 Vectorize(cubeAndAdd)
함수가 있으며 (x, y)를 인수로 사용하여 호출합니다.Vectorize(cubeAndAdd)(x,y)
( 루프 function(x,y)
에서 익명 전체를 제거하라는 제안이 outer
여기 에서 작동하고 한 줄 더 짧게 만들지 만), 함수에 인수를 명시 적으로 '공급'하는 것이 좋습니다. 추가 인수가 필요한 함수를 사용하려면).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다