Julia 入门笔记

                     

贡献者: addis

  • 本文处于草稿阶段。

   Julia 从 Matlab 和 C/C++ 借鉴了不少语法,如果你两种语言都已经会了,那么 Julia 是十分简单的。本章的目的就是为已经学习过类似语言的读者提供一个 Julia 语言的快速入门笔记。

   Ubuntu/Debian 安装方法。

sudo apt install julia
# 或者
sudo snap install Julia --classic
如果版本较老,最好还是从官网下载安装包,直接解压即可使用 bin/julia 执行文件。也可以创建软链 sudo ln -s /home/用户名/julia-xxx/bin/julia /usr/bin/julia

   另外本地的 Jupyter Notebook 也支持 Julia。在 julia 命令行里面运行 import PkgPkg.add("IJulia")。现在打开 Jupyter notebook 就可以新建 julia 文档了。

   至于 IDE,Juno 和 JuliaPro 都已经停止更新,当前(2023-3)最热门的 IDE 环境是 Julia 的 VScode 拓展,应该支持逐行调试。

1. 命令行

2. 计算器

3. 变量

4. 数组和矩阵

5. 子数组

   SubArray 的结构

struct SubArray{T,N,P,I,L} <: AbstractArray{T,N}
    parent::P
    indices::I
    offset1::Int  # for linear indexing and pointer, only valid when L==true
    stride1::Int  # used only for linear indexing
    ...
end

6. 指针

7. 线性代数

特殊矩阵类

8. BLAS 和 Lapack

9. 脚本

10. 画图

   第三方画图包 Plots,无需安装

using Plots
x = 1:10; y = rand(10); # These are the plotting data
plot(x,y)

11. 控制流

b = 3;
for a = 1:5
    if a < b
        println(a, " < ", b)
    elseif a > b
        println(a, " > ", b)
    else
        println(a, " = ", b)
    end
end
其中 1:5 的类型是 UnitRange{Int64}。若令 a = 1:5,可以使用 a[i] 获取 “元素”。类似地,1:2:5 的类型是 StepRange{Int64, Int64}

12. 函数

   函数定义

function sphere_vol(r)
    return 4/3*pi*r^3
end

   定义含名参数如

function greet(name; greeting="Hello")
    println("$greeting, $(name)!")
end

13. 常用函数

14. 异常处理

try 
    一些命令
catch y
    if isa(y, 错误类型1)
        一些命令
    elseif isa(y, 错误类型2)
        一些命令
    end
end

15. 储存变量

   要把任意变量存到文件,用 using Serialization,除此之外常用的还有 using JLD2

using Serialization
a = randn(100,100)
f = serialize("file1.dat", a)
a1 = deserialize("file1.dat")
println(a == a1)

16. 文件读写

17. 模块

18. 调用 C/C++/Fortran 函数

19. 并行计算

20. 宏

                     

© 小时科技 保留一切权利