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


相关文章
|
机器学习/深度学习 存储 自然语言处理
基于AIGC的智能化数据资产盘点方案
基于AIGC的智能化数据资产盘点方案
649 2
基于AIGC的智能化数据资产盘点方案
|
4月前
|
JSON 搜索推荐 API
淘宝商品评论 API 返回数据参考(附解析与实战示例)
淘宝商品评论 API(核心接口如 taobao.item.review.get)是获取商品用户评价数据的官方通道,返回数据以 JSON 格式为主,结构规范且字段丰富,涵盖评论基础信息、用户画像、内容详情、多媒体信息等维度。本文将拆解通用返回结构、核心字段含义、多场景示例及解析注意事项,为开发者提供完整的数据参考指南。
|
6月前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
399 0
|
域名解析 监控 安全
比宝塔面板更好用的部署软件工具面世了
本文对比了宝塔面板与新兴部署软件Websoft9,介绍了Websoft9在部署开源应用时的独特优势,如丰富的即用型模板、简便的安装配置流程、支持泛域名解析及高效的安全性措施,适合不同技术水平的用户使用。
比宝塔面板更好用的部署软件工具面世了
|
11月前
|
测试技术 Linux 网络安全
【App Services】App Service报错远程证书无效 - "The remote certificate is invalid according to the validation procedure"
在开发环境中,新部署的应用(App Service)无法与 Salesforce 的远程端点建立 SSL/TLS 连接,报错显示证书无效。经分析,防火墙启用了 SSL Inspection,插入了私有 CA 签发的中间证书,导致 App Service 无法验证。解决方案包括禁用 SSL Inspection、设置 `WEBSITE_LOAD_ROOT_CERTIFICATES` 环境变量或临时禁用代码中的 SSL 验证(仅限测试环境)。
320 8
|
搜索推荐 数据挖掘 数据处理
《探索 Faiss:原理与应用解析》
在数据驱动的时代,高效处理和搜索海量数据至关重要。Faiss 是一个专为大规模相似性搜索和聚类设计的库,擅长处理高维向量数据,广泛应用于文本处理、图像识别等领域。本文深入解析 Faiss 的原理、使用方法及其在图像检索、文本相似性比较和推荐系统中的实际应用,帮助读者掌握这一强大工具,提升数据处理能力。
854 2
|
前端开发 开发者
CSS进阶-2D变换:translate, rotate, scale
【6月更文挑战第15天】CSS 2D变换如`translate`、`rotate`和`scale`赋予了网页设计灵活性,无需改动HTML即可实现元素移动、旋转和缩放。本文详解这三个属性,讨论使用中的问题和解决方案,并提供代码示例。例如,`translate(50px, 100px)`平移元素,`rotate(45deg)`顺时针旋转45度,`scale(1.5, 1)`水平放大1.5倍。理解百分比、旋转中心和缩放影响,结合transform-origin和注释,能帮助开发者更好地掌握这些技巧。
438 4
|
JavaScript API
给 element-plus 增加一个防抖的功能(一)
element-plus 功能非常强大,但是好像只有 el-autocomplete 提供了一个防抖功能,其他表单子控件并没有提供防抖功能,而 el-autocomplete 的防抖和我想要的效果又不太一样,所以只好写个函数实现我想要的防抖效果。
|
Python
利用Python生成一个列表的所有子集
利用Python生成一个列表的所有子集
495 0
逻辑代数基础
逻辑代数基础
2249 1
逻辑代数基础

热门文章

最新文章