Julia的function

# function的声明方法
# 第一种
function myadd(x, y)
    x + y
end function
# myadd(2,3) = 5

# 第二种
f(x, y) = x * y
# f(2, 3) = 6

# 第三种
f = x -> x / 10  # 这种形式的函数貌似只能是单变量函数
# f(1) = 1 / 10 = 0.1

# Duck-typing
# 声明如下函数
function f( x )
    x^2
end

x = rand(3,3)
# 则f(x) = matmul(x,x)

# 下面的情况会报错
v = rand(3)
# f(v)表示两个三行一列的向量相乘,会报错
# 如果想让两个大小相同的向量相乘,应该为v.*v。点积

# Mutating vs. non-mutating functions
# 这里用函数sort来举例
a = rand(10)
sort(a)的返回值是将a的元素按从小到大的顺序排列,但a保持不变
sort!(a)的返回值是将a的元素按从小到大的顺序排列,并且其返回值与a捆绑

# map与broadcast
# map的一般用法如下
# map( f, v ) 或 map( f, A )
# 表示对向量v或矩阵A的元素进行函数f映射
v = [1,2,3]
f = x -> x.^2  # 注意这里写成.^和^都可以,因为map是将后面向量或矩阵的元素(不是整个向量或矩阵)在f上的映射
map(f, v)
map(f, A)

# broadcast与map类似,是map的一般化形式。它可以做map能做到的任何事,语法与map相同
# 其中,对向量或是矩阵的元素进行函数f映射,也可以写成下面的形式
f.(v)
f.(A)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值