Anonymous Functions section 아래 줄리아 설명서에서 제공되는 예제 중 하나는 (x,y,z)->2x+y-z
입니다.Julia : 익명 함수에 여러 인수 전달
누군가이 함수에 일련의 인수를 전달하는 방법을 보여 주시겠습니까?
세이 x=(1,2,3); y=(2,3,4); z=(1,3,5)
.
Anonymous Functions section 아래 줄리아 설명서에서 제공되는 예제 중 하나는 (x,y,z)->2x+y-z
입니다.Julia : 익명 함수에 여러 인수 전달
누군가이 함수에 일련의 인수를 전달하는 방법을 보여 주시겠습니까?
세이 x=(1,2,3); y=(2,3,4); z=(1,3,5)
.
당신은 단지 함수를 호출에 전달할 수 있습니다
fun = (x,y,z)->2x+y-z
x=[1,2,3]
y=[2,3,4]
z=[1,3,5]
fun(x, y, z)
이 결과 제공 :
3-element Array{Int64,1}:
3
4
5
그러나 당신이 원하는 경우 귀하의 예제에 따라 튜플을 사용하여지도를 사용해야합니다 :
x=(1,2,3)
y=(2,3,4)
z=(1,3,5)
map(fun, x, y, z)
이 결과는 같지만, 튜플로 시간 :
(3, 4, 5)
이 때문에 *, +이고 - 공식 2x+y-z
이 작동하지 않을 수 있습니다 연산자 튜플에 대해 정의되어 있지 않습니다. map
을 사용하면 함수를 여러 번 스칼라로 전달하여이 문제를 해결할 수 있습니다.
익명 함수를 호출하려면 변수에 익명 함수를 할당해야합니다.
julia> fun = (x,y,z)->2x+y-z
(anonymous function)
julia> fun((1,2,3),(2,3,4),(1,3,5))
ERROR: no method *(Int64, (Int64,Int64,Int64))
in anonymous at none:1
그것은 작동하지 않습니다, 당신은 x
에 설정 한 튜플 때문에 *
기능을 구현하지 않습니다. 그런 다음 X, Y 및 Z가 될 배열을 정의하면
알 수 있습니다. 줄리아와 더 많은 경험을 쌓을 필요가 있습니다. 할당을 요구하지 않는 또 다른 방법은'((x, y, z) -> 2x + y-z) (1,2,3)' – fsmart
네, 가능합니다. – ivarne