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月前
|
程序员
R 语言教程 之 R 基础运算 1
本章介绍R语言的基础运算,包括赋值(使用`<-`或`=`)和主要的数学运算符,如加、减、乘、除、乘方、整除及求余等,并通过实例演示了这些运算符的使用方法和运算优先级。
62 6
|
2月前
R 语言教程 之 R 基础运算 2
《R 语言教程 之 R 基础运算 2》介绍了 R 语言中的关系运算符及其使用方法。通过示例展示了如何利用 >、<、==、!=、>=、<= 等运算符比较两个向量的对应元素,并返回布尔值结果。
35 3
|
2月前
R 语言教程 之 R 基础运算 4
本章《R基础运算》介绍了R语言中的简单运算,重点讲解了赋值运算符的使用方法,包括向左、向右及等于赋值,并通过实例演示了不同赋值方式的效果。
38 1
|
2月前
R 语言教程 之 R 基础运算 5
本章介绍R语言的基础运算,涵盖简单的算术运算及特殊运算符,如冒号(:)创建数字序列、%in%判断元素是否存在于向量中、%*%进行矩阵乘法等,并通过实例演示这些运算符的使用方法。
46 1
|
2月前
R 语言教程 之 R 基础运算 3
本章介绍R语言的基础运算,涵盖逻辑运算符的使用,包括按元素逻辑与(&)、逻辑或(|)、逻辑非(!)及仅比较首个元素的逻辑与(&&)和逻辑或(||)运算符。通过实例演示了这些运算符在向量上的应用及其返回的布尔值结果。
44 2
|
2月前
|
C语言
R 语言教程 之 R 基础运算 7
本章《R基础运算》介绍了R语言中的基本数学运算,包括取整、三角及反三角函数,以及正态分布等概率分布函数的使用方法。通过具体实例演示了这些函数在实际操作中的应用,如取整函数`round()`, `ceiling()`, `floor()`的特性,以及正态分布函数`dnorm()`, `pnorm()`, `qnorm()`, `rnorm()`的功能与区别。适合初学者快速掌握R语言的基础数学处理能力。
39 0
|
2月前
|
机器学习/深度学习
R 语言教程 之 R 基础运算 6
本章《R基础运算》介绍了R语言中的基本数学运算与函数,包括求平方根、自然指数、对数等常用函数,并通过实例展示了这些函数的具体应用。例如,`sqrt(4)`返回2,`exp(1)`返回约2.718282等。
45 0
|
7月前
|
人工智能 程序员 Shell
程序员必知:对比python学julia(第二章)
程序员必知:对比python学julia(第二章)
45 2
|
Python
Julia:如何用 Plots 画多个子图
Plots 可以画出很多丰富的图。从画线、点、阴影填充都可以,但是在 Julia 上面,与 Python 上的 Matplotlib 的写法有很大的不同,这篇文章就是写一些基本的或者常用的用法,包括如何用 For 循环去画多个子图。
187 0
Julia:如何用 Plots 画多个子图