负数对2取余_Julia程序设计基础与在地球物理学中的应用(2)——数学运算与矩阵操作...

参考资料

Julia教程:从入门到进阶

Julia 1.5 中文文档

编程工具

JuliaPro 1.4.2-1

地球物理局 转业处
地球物理局 基建处
地球物理局 地震波动力学实验室
地球物理局 信息化处

# 优先满足个人研究需求,所以系列文章不会面向程序员群体
# 欢迎批评指正,禁止转载

目录

石中居士:Julia程序设计基础与在地球物理学中的应用——目录​zhuanlan.zhihu.com
3a1d33362621f4a10fbdbf3e913d24a8.png

数学运算

  • 四则运算与其它语言基本完全一样。
  • 向量运算:与Matlab完全相同。
  • 比较运算:支持链式比较。
julia> 1<=2<=3==3<=5>4>=2
true
  • 常用数学函数

round(x):四舍五入

floor(x):向下取整

ceil(x):向上取整

trunc(x):直接截掉小数

div(x,y):取模

fld(x,y):取小于结果的最大整数

cld(x,y):取大于结果的最小整数

rem(x,y):取余

mod(x,y)

mod1(x,y1):如果x是y的整数倍,则返回y,不会返回零

mod2pi(x):对2pi取余

divrem(x,y):返回取模的值和取余的值

fldmod(x,y):返回取小于x的最大整数和取余的值

gcd(x,y,...):最大公约数

lcm(x,y,...):最小公倍数

abs(x):求模

abs2(x):求平方

sign(x):取负号

signbit(x):正数返回false,负数返回true

copysign(x,y):返回x*sign(y)

flipsign(x,y):返回x*sign(y)*(-1)

sqrt(x):开平方

cbrt(x):开三次方

hypot(x,y):sqrt(x^2+y^2)

exp(x):e^x

expm1(x):e^(-x)

ldexp(x,n):x^n

log(x):loge(x)

log(b,x):logb(x)

log2(x):log2(x)

log10(x):log10(x)

log1p(x):loge(1+x)

三角函数与Matlab相同。


矩阵操作

  • 定义向量
julia> a=[1,2,3,4]
4-element Array{Int64,1}:
 1
 2
 3
 4
  • 步进向量
julia> aa=(1:2:5)
1:2:5

julia> aa.start
1

julia> aa.stop
5

julia> aa.step
2
  • 用[ ]定义空矩阵
  • 用collect( )将元组转换为矩阵
julia> collect(1:4)
4-element Array{Int64,1}:
 1
 2
 3
 4
  • 复制,用[:]表示
julia> c2 = c[:]
4-element Array{Int64,1}:
 1
 2
 3
 4
  • 矩阵定义中,;和空格的区别如下
julia> b=[1;2;3;4]
4-element Array{Int64,1}:
 1
 2
 3
 4

julia> c=[1 2 3 4]
1×4 Array{Int64,2}:
 1  2  3  4
  • ones( ):生成全1阵
  • zeros( ):生成零矩阵
  • 在矩阵拼接中
julia> x = ones(2,3)
2×3 Array{Float64,2}:
 1.0  1.0  1.0
 1.0  1.0  1.0

julia> y = zeros(2,3)
2×3 Array{Float64,2}:
 0.0  0.0  0.0
 0.0  0.0  0.0

julia> z = [x y]
2×6 Array{Float64,2}:
 1.0  1.0  1.0  0.0  0.0  0.0
 1.0  1.0  1.0  0.0  0.0  0.0

julia> z = [x,y]
2-element Array{Array{Float64,2},1}:
 [1.0 1.0 1.0; 1.0 1.0 1.0]
 [0.0 0.0 0.0; 0.0 0.0 0.0]

julia> z = [x;y]
4×3 Array{Float64,2}:
 1.0  1.0  1.0
 1.0  1.0  1.0
 0.0  0.0  0.0
 0.0  0.0  0.0
  • 矩阵索引:从1开始
julia> z[1]
1.0
  • 矩阵维度:size( )
julia> size(z)
(4, 3)
  • 矩阵元素数量:length( )
  • 求矩阵中所有元素的和:sum( )
  • 矩阵运算:
julia> a.+b
2×3 Array{Float64,2}:
 2.0  4.0  6.0
 3.0  5.0  7.0

julia> a+b
2×3 Array{Float64,2}:
 2.0  4.0  6.0
 3.0  5.0  7.0

julia> a.-b
2×3 Array{Float64,2}:
 0.0  2.0  4.0
 1.0  3.0  5.0

julia> a-b
2×3 Array{Float64,2}:
 0.0  2.0  4.0
 1.0  3.0  5.0

julia> a.*b
2×3 Array{Float64,2}:
 1.0  3.0  5.0
 2.0  4.0  6.0

julia> a*b'
2×2 Array{Float64,2}:
  9.0   9.0
 12.0  12.0

julia> a/b
2×2 Array{Float64,2}:
 1.5  1.5
 2.0  2.0

julia> a./b
2×3 Array{Float64,2}:
 1.0  3.0  5.0
 2.0  4.0  6.0
  • 随机矩阵:rand( )
julia> rand(10)
10-element Array{Float64,1}:
 0.8890523690119949
 0.6663426924253881
 0.929455692427464
 0.37366209743663203
 ⋮
 0.822873573178756
 0.6738858960099268
 0.25423093806313224

julia> rand(Int8,2,3)
2×3 Array{Int8,2}:
 -94  105   22
 111  -60  -93

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值