using PyPlot
x = 0:0.1:120
y1 = sin.(x)
y1 = map(sin,x)
plt.plot(x, y1)
如果用sin函数进行矢量运算,在数学上无法直接表达为sinx, 但Julia为了实现这个功能,在函数名后加点来表示,即sin. ,相当于x中的每个元素赋值给sin,可以用map函数表达。
using PyPlot
x= 0:0.1:120
y2 = 3*sin.(3 .* x)
y2 = @. 3*sin(3 * x)
plt.plot(x, y2)
更有意思的是,如果式子中有很多点,可以用@宏命令将式子中的点全部放在前面,Julia会默认函数名加了点。
using PyPlot
x = 0:0.1:120
print(typeof(x))
import Base: sin
function sin(v::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64})
return sin.(v)
end
y1 = sin(x)
plt.plot(x, y1)
如果实在不想加点,也可以采取多重派发的方法给现有的函数再定义一个方法(method)。首先用typeof(x)查看一下参数类型,然后定义一个function,并对参数进行类型定义,并返回函数结果,在后续操作中就可以用sin(x)代替sin. (x)。不过在python中numpy可以直接用sinx,可能是用的这个思想。
感谢“鼠标君”倾情讲解 https://blog.csdn.net/iamzhtr?type=blog