自语:
话说Julia是一个神奇的语言,语法简单,速度贼快,是吹牛装X的不二神器。记得一个物理学家说过,那些旧理论之所以消失,不是因为人们改变了看法,而是持那种看法的人死光了。
同样的道理(同样在哪里???),以后Fortran或者其它旧式的语言之所以消失,不是因为大家都学习了新语言,而是使用他们的人死光了。
为了证明自己还永远年轻,就用一些时髦的词汇,看bilibili,玩QQ空间,听《两只老虎爱跳舞》,学习Julia。。。
对于嘲笑我装嫩的年轻人,我引用王朔的话:“让我欣慰的是:你也不会年轻很久了”
加油吧,骚年,还在朋友圈打卡R
和Python
么,试试Julia
吧!
1.1 矩阵的生成
生成一个4行4列的矩阵, 这里使用1~16数字. 注意, 这里生成矩阵时, 需要首先定义一个空的数组, 然后再进行填充.
代码语言:javascript复制mat = Array(Int32,4,4)
代码语言:javascript复制4×4 Array{Int32,2}:
125804192 256236432 79364176 79364176
0 0 0 0
79234864 79266064 125805712 248775184
0 0 0 0
代码语言:javascript复制mat[:]=1:16
mat
代码语言:javascript复制4×4 Array{Int32,2}:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
也可以使用reshape构建矩阵
代码语言:javascript复制reshape(1:15,3,5)
代码语言:javascript复制3×5 Base.ReshapedArray{Int64,2,UnitRange{Int64},Tuple{}}:
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
1.2 提取主对角线
代码语言:javascript复制diag(mat)
代码语言:javascript复制4-element Array{Int64,1}:
1
6
11
16
1.3 生成对角线为1的对角矩阵
代码语言:javascript复制eye(4)
代码语言:javascript复制4×4 Array{Float64,2}:
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
1.4 提取矩阵的下三角
代码语言:javascript复制tril(mat)
代码语言:javascript复制4×4 Array{Int64,2}:
1 0 0 0
2 6 0 0
3 7 11 0
4 8 12 16
1.5 提取矩阵的上三角
代码语言:javascript复制triu(mat)
代码语言:javascript复制4×4 Array{Int64,2}:
1 5 9 13
0 6 10 14
0 0 11 15
0 0 0 16
1.6 矩阵转置
代码语言:javascript复制mat'
代码语言:javascript复制4×4 Array{Int64,2}:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1.7 矩阵相乘
代码语言:javascript复制a = [[1,3] [2,4]]
代码语言:javascript复制2×2 Array{Int64,2}:
1 2
3 4
代码语言:javascript复制b = [[2,4] [3,5]]
代码语言:javascript复制2×2 Array{Int64,2}:
2 3
4 5
对应数值相乘
代码语言:javascript复制a.*b
代码语言:javascript复制2×2 Array{Int64,2}:
2 6
12 20
矩阵相乘
代码语言:javascript复制a*b
代码语言:javascript复制2×2 Array{Int64,2}:
10 13
22 29
1.8 矩阵求逆
代码语言:javascript复制inv(a)
代码语言:javascript复制2×2 Array{Float64,2}:
-2.0 1.0
1.5 -0.5
代码语言:javascript复制inv(a)*a
代码语言:javascript复制2×2 Array{Float64,2}:
1.0 0.0
2.22045e-16 1.0