(一)Julia学习笔记:小“.“大学问

文章介绍了在Julia语言中如何使用sin.进行矢量运算,等同于Python的numpy库。通过示例展示了使用map函数和宏命令@来实现向量化操作,并提到可以使用多重派发为现有函数定义新方法,以避免使用点操作符。
摘要由CSDN通过智能技术生成
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值