Julia语言矩阵运算入门

简介: Julia 是一门支持过程式、函数式和面向对象的多范式语言。 它像 R、MATLAB 和 Python 一样简单,在高级数值计算方面有丰富的表现力,并且支持通用编程。 为了实现这个目标,Julia 以数学编程语言为基础,同时也参考了不少流行的动态语言。

        在科学计算领域,一直对性能有较高的要求,Julia是一个新的高性能动态高级编程语言,功能强大,语法简洁,易于用户学习。它拥有丰富的函数库,提供了数字精度和分布式并行运行方式。它内部使用Just-in-Time实时编译器很有效地提高了它的运行效率,有些场景下能比得上C和C++。

     根据官网的介绍,Julia 是一门支持过程式、函数式和面向对象的多范式语言。 它像 R、MATLAB 和 Python 一样简单,在高级数值计算方面有丰富的表现力,并且支持通用编程。 为了实现这个目标,Julia 以数学编程语言(mathematical programming languages)为基础,同时也参考了不少流行的动态语言,例如 LispPerlPythonLua、和 Ruby。Julia中文文档可见网站 https://docs.juliacn.com/latest/

    Julia 还拥有以下优势:

  • 采用 MIT 许可证:免费又开源
  • 用户自定义类型的速度与兼容性和内建类型一样好
  • 无需特意编写向量化的代码
  • 为并行计算和分布式计算设计
  • 轻量级协程支持
  • 低调又牛逼的类型系统
  • 优雅、可扩展的类型转换和类型提升
  • 对 Unicode 的有效支持,包括但不限于 UTF-8
  • 直接调用 C 函数,无需封装或调用特别的 API
  • 像 Shell 一样强大的管理其他进程的能力
  • 像 Lisp 一样的宏和其他元编程工具

下面给出一些Julia处理矩阵的示例,感觉和Matlab很像,示例如下:

julia>a= [ 135 ; 268]
2×3Array{Int64,2}:
135268julia>a[1,:]
3-elementArray{Int64,1}:
135julia>a[1:2,1]
2-elementArray{Int64,1}:
12julia>b=a'3×2LinearAlgebra.Adjoint{Int64,Array{Int64,2}}:
123658julia>a= [ 123 ; 456 ; 789 ]
3×3Array{Int64,2}:
123456789julia>a*a3×3Array{Int64,2}:
303642668196102126150julia>a^23×3Array{Int64,2}:
303642668196102126150julia>a .^23×3Array{Int64,2}:
149162536496481

注意:矩阵运算这里的  .^2  和 ^2 的区别。

Julia 有一个用于表示整数精确比值的分数类型。分数通过 // 运算符,示例如下:

julia>inv(2//3)3//2julia>piπ=3.1415926535897...julia> (3// 5) * (2 // 3)2//5julia>rationalize(0.5)
1//2julia>denominator(2//3)3julia>numerator(2//3)2

Julia还支持约等于 ≈,示例如下:

julia>0.1 (0.1-1e-10)
true

另外,函数相关示例如下:

julia>functionf(x,y)
x^2+2x*y+y^2endf (genericfunctionwith1method)
julia>f(2,3)
25julia>1:5|>sum|>sqrt3.872983346207417


相关文章
|
2天前
|
Unix Linux Android开发
Julia 语言环境安装
Julia语言可在Linux, FreeBSD, macOS, Windows和Android上运行。下载地址:[Julia官网](https://julialang.org/downloads/)或[清华大学镜像](https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/).
|
9月前
|
算法
如何将算法翻译成RTL(三):Verilog中的Signed本质及用法
如何将算法翻译成RTL(三):Verilog中的Signed本质及用法
97 0
|
10月前
|
算法 Python
【数学建模】混合整数规划MIP(Python+Gurobi代码实现)
【数学建模】混合整数规划MIP(Python+Gurobi代码实现)
585 0
|
10月前
|
Python
【编程基础】Python中的数学运算
虽然咱们这儿大多数同学都已经有了一些编程基础,但考虑到有刚加入的新同学,偶尔还是要说一点基础向的内容。今天 Crossin 就跟大家说一说 Python 中的数学运算。
|
Java
Java基础语法运算和控制符(二)
Java基础语法运算和控制符(二)
149 0
Java基础语法运算和控制符(二)
|
Java
Java基础语法运算和控制符(一)
Java基础语法运算和控制符(一)
94 0
Java基础语法运算和控制符(一)
|
机器学习/深度学习 人工智能 算法
开发人员亲自上场:Julia语言搞机器学习和Python 比,哪个好用?
开发人员亲自上场:Julia语言搞机器学习和Python 比,哪个好用?
302 0
开发人员亲自上场:Julia语言搞机器学习和Python 比,哪个好用?
|
程序员 C++ Python
程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
225 0
程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
|
机器学习/深度学习 存储 算法
后Python时代, Julia告诉你速度和灵活性真的都可以有
8 月份,Julia 1.0 发布,在社区内引发了极大的关注。之后不久,机器之心推荐了一篇简单的中文教程。在最新的这篇文章中,作者对 Julia 的众多特性进行了介绍,同时简略介绍了 Julia 在机器学习和深度学习方面的资源储备。
251 0
后Python时代, Julia告诉你速度和灵活性真的都可以有