Julia-数学运算和初等函数
算术运算符
以下算术运算符支持所有的原始数值类型:
表达式 名称 描述 +x
一元加法运算符 全等操作 -x
一元减法运算符 将值变为其相反数 x + y
二元加法运算符 执行加法 x - y
二元减法运算符 执行减法 x * y
乘法运算符 执行乘法 x / y
除法运算符 执行除法 x ÷ y
整除 取 x / y 的整数部分 x \ y
反向除法 等价于 y / x
x ^ y
幂操作符 x
的y
次幂x % y
取余 等价于 rem(x,y)
以及对
Bool
类型的否定:
表达式 名称 描述 !x
否定 将
true
和false
互换
算术运算符的部分和python基本一致,只有几个地方要注意一下。
x ÷ y
|
整除 | 取 x / y 的整数部分 |
x \ y
|
反向除法 |
等价于 y / x
|
x ^ y
|
幂操作符 |
x 的 y 次幂
|
这三个部分是和python不一致的,但julia中的运算符表示似乎更符合常识,也挺好记的。
位运算符
所有原始整数类型都支持以下位运算符:
表达式 名称 ~x
按位取反 x & y
按位与 x | y
按位或 x ⊻ y
按位异或(逻辑异或) x >>> y
逻辑右移 x >> y
算术右移 x << y
逻辑/算术左移
位运算符和C语言中基本一致,除了按位异或(逻辑异或)符看上去有些诡异。这个符号是"\xor"加Tab键打出来的,这样记好像也不难理解。
复合赋值运算符
每一个二元运算符和位运算符都可以给左操作数复合赋值:方法是把
=
直接放在二元运算符后面。比如,x += 3
等价于x = x + 3
。julia> x = 1 1julia> x += 3 4julia> x 4
二元运算和位运算的复合赋值操作符有下面几种:
+= -= *= /= \= ÷= %= ^= &= |= ⊻= >>>= >>= <<=
这里就不赘述了,和C 语言完全一样。
有一点需要注意一下,这些是双目运算符,最后会把值赋值到左操作数上,因此可能会改变变量类型
julia> x=2
2julia> typeof(ans)
Int64julia> x *= 0.01
2julia> typeof(ans)
Float64
向量化dot运算符
julia中,每个二元运算符都有一个dot运算符和它对应,表示的含义是逐元素的和后面的操作数进行运算。
julia> [1,2,3] .^ 3
3-element Array{Int64,1}:1827
需要注意的一点是:
将点运算符用于数值字面量可能会导致歧义。例如,
1.+x
到底是表示1. + x
还是1 .+ x
?这会令人疑惑。因此不允许使用这种语法,遇到这种情况时,必须明确地用空格消除歧义。
数值比较
标准的比较操作对所有原始数值类型有定义:
操作符 名称 ==
相等 !=
,≠
不等 <
小于 <=
,≤
小于等于 >
大于 >=
,≥
大于等于
和现在主流的热门语言的都一样,我就不赘述了。
注意:
整数的比较方式是标准的按位比较,而浮点数的比较方式则遵循 IEEE 754 标准。
- 有限数的大小顺序,和我们所熟知的相同。
+0
等于但不大于-0
.Inf
等于自身,并且大于除了NaN
外的所有数。-Inf
等于自身,并且小于除了NaN
外的所有数。NaN
不等于、不小于且不大于任何数值,包括它自己。
NaN
不等于它自己这一点可能会令人感到惊奇,所以需要注意:julia> NaN == NaN falsejulia> NaN != NaN truejulia> NaN < NaN falsejulia> NaN > NaN false
由于
NaN
的存在,在做数组比较时会特别头疼:julia> [1 NaN] == [1 NaN] false
为此,Julia 给这些特别的数提供了下面几个额外的测试函数。这些函数在某些情况下很有用处,比如在做 hash 比较时。
函数 测试是否满足如下性质 isequal(x, y)
x
与y
是完全相同的isfinite(x)
x
是有限大的数字isinf(x)
x
是(正/负)无穷大isnan(x)
x
是NaN
isequal
认为NaN
之间是相等的:julia> isequal(NaN, NaN) truejulia> isequal([1 NaN], [1 NaN]) truejulia> isequal(NaN, NaN32) true
isequal
也能用来区分带符号的零:julia> -0.0 == 0.0 truejulia> isequal(-0.0, 0.0) false
有符号整数、无符号整数以及浮点数之间的混合类型比较是很棘手的。开发者费了很大精力来确保 Julia 在这个问题上做的是正确的。
对于其它类型,
isequal
会默认调用==
,所以如果你想给自己的类型定义相等,那么就只需要为==
增加一个方法。如果你想定义一个你自己的相等函数,你可能需要定义一个对应的hash
方法,用于确保isequal(x,y)
隐含着hash(x) == hash(y)
。
另外julia支持链式比较,连等,连大于,连小于,连大于等于,连。。。
Julia-数学运算和初等函数相关推荐
- Julia 数学运算和初等函数
关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 Julia数学运算和初等函数 1.算数运算符 julia> 5+9 14 julia> 9-5 4 julia> 5*9 4 ...
- julia常用矩阵函数_Julia系列教程3 数学运算 矩阵运算
数学运算https://www.zhihu.com/video/1113554595376295936 数学运算 比Matlab更直观的数学表达方式 x = 10 2x >>20 但这就导 ...
- 取余运算怎么算_3 数学运算 矩阵操作
数学运算 比Matlab更直观的数学表达方式 x = 102x>>20 但这就导致了可能会出现语法的冲突 十六进制整数文本表达式 0xff 可以被解析为数值文本 0 乘以变量 xff 浮点 ...
- smali to java_Smali —— 数学运算,条件判断,循环
通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...
- 只会高中数学运算就能发现算法?Google开源的AutoML-Zero有多厉害
译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 机器学习研究,已经在多个方面都取得了进步,包括模型结构和优化方法等.而使此类研究自动化的工作(称为AutoML)也有重大进展.这一 ...
- 谷歌AutoML新进展,进化算法加持,仅用数学运算自动找出ML算法
机器之心报道 参与:魔王.杜伟.小舟 授权转载自公众号机器之心 仅使用基础数学运算就能自动搜索机器学习算法?谷歌 Quoc V. Le 等人提出了 AutoML-Zero 方法. AutoML-Zer ...
- 最后的分的计算机公式,省考最后10天!掌握这些数学运算公式,提分!
2019年山东公务员考试4月20日笔试,目前的复习时间已经不多了.为帮助大家冲刺复习,突破数学运算这一难关,山东公务员考试网(www.sdgwy.org)总结了数学运算必背公式,大家可学习记忆. 1. ...
- P2759 奇怪的函数(二分答案,数学运算)
P2759 奇怪的函数 范围2e92e92e9,直接枚举肯定超时,正着直接求答案求不出来,那么运用逆向思维,直接二分答案判断即可.这道题涉及简单的数学运算. 要xx>=nx^x>=nxx& ...
- python中mod运算符_Python中的数学运算操作符使用进阶
Python中对象的行为是由它的类型 (Type) 决定的.所谓类型就是支持某些特定的操作.数字对象在任何编程语言中都是基础元素,支持加.减.乘.除等数学操作. Python的数字对象有整数和浮点数, ...
- Java中sin、log、tan等复杂数学运算怎么搞?
MXReflection,一个基于mXparser库功能的Java复杂计算框架. 还记不记得求学时代各种复杂的数学公式?sin.log2.tan等等等,是不是看到这就觉得算起来麻烦? 通过MXRefl ...
最新文章
- 计算机主板时钟,主板时钟电路工作原理
- Android应用开发-所有课堂代码
- 基于函数计算的游戏打包最佳实践
- UVALive 3942 Remember the Word(字典树+DP)
- MOSS服务器场迁移1-有关切换登录用户时需要刷新一次才能成功的问题
- 大数据Hadoop集群中常用的任务调度框架
- Python使用for循环打印直角三角形、九九乘法表、金字塔
- android清理缓存动画、天气APP、购物下单选择器、阅读APP、饿了么demo等源码
- 论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案
- 限制UITextView输入字数(兼容iOS7)
- 酷Q插件dll 加载失败!错误:缺失AppInfo返回的AppID(york.1996.com)对应的文件(-110)
- 数学分析教程(科大)——4.3笔记+习题
- Dilated Convolution(空洞卷积、膨胀卷积)详解
- java的regex_java regex 简单使用
- ArcGIS Pro建立三维模型(三维渲染)
- 在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足
- vue 修改模板{{}}标签_vue.js - Vue单文件的template标签
- “支付清算”之信息流与资金流
- 家里的老电脑,是升级硬件好,还是重新买一个好?
- Axure 放大与缩小
热门文章
- 《数据虚拟化:商务智能系统的数据架构与管理》一 1.8 数据虚拟化的不同实现...
- 软件构建--系统设计
- LInux终端中Ctrl+S卡死
- 接口 与 抽象类 区别
- 什么是我想要守护的东西?
- 睡眠排序、面条排序、猴子排序...........................
- C#.NET自定义报表数据打印
- Maven生命周期和插件
- nginx 504 Gateway Time-out 解决办法
- HTTP Error 404 - File or Directory not found caused by ISAPI filter of Sharepoint