"Julia" (外部计算系统)

更多信息

ExternalEvaluate 用法

  • ExternalEvaluate["Julia",code] 在 Julia REPL 中执行代码字符串并以 Wolfram 语言表达式的形式返回结果.
  • ExternalEvaluate["Julia""String",code] 在 Julia REPL 中执行代码字符串并以 Wolfram 语言字符串的形式返回输出.

数据类型

  • 支持以下 Julia 内置类型:
  • BoolTrue | False布尔 True/False
    Int8, Int16, Int32, etc.Integer整数
    Float16, Float32, etc.Real实数
    Complex{Float16}, Complex{Float32}, etc.Complex复数(仅支持从 Julia 返回的复数)
    StringString字符的字符串
    ArrayList对象列表
    DictAssociation关联数组
    SetList没有重复元素的无序组
    TupleList固定长度的容器
    Date, DateTimeTemplateBox[{DateObject, paclet:ref/DateObject}, RefLink, BaseStyle -> {3ColumnTableMod}]日期,日期间隔
    NaNIndeterminate非数字
    nothingNull无返回值

使用说明

  • 字符串模板 (<**>) 可用于计算并将 Wolfram 语言表达式插入 Julia 代码字符串中.

范例

打开所有单元关闭所有单元

基本范例  (1)

在 Julia 中计算 2+2 并返回结果:

数组以列表形式返回:

类型 > 并在下拉菜单中选择 Julia 可以获取一个使用 ExternalEvaluate 进行计算的代码单元格:

map(sqrt, 1:1:10)

日期是以 DateObject 表达式的形式从 Julia 返回:

范围  (20)

在 Julia 中计算布尔语句并返回结果:

在 Julia 中拼接字符串并返回结果:

Julia 中的词典词条作为关联返回:

Julia 中的数组以 List 的形式返回:

会话选项  (9)

"ReturnType"  (3)

对于 Julia 运算系统,默认的返回类型是 "Expression"

数字、字符串、列表和关联会自动导入 "Expression" 返回类型:

返回类型为 "String",通过调用 Julia 函数 repr,返回一个字符串的结果:

"Version"  (1)

你可以使用 "Version" 来确保只使用一个特定的 Julia 版本:

你可以指定一个次要或补丁版本:

"Evaluator"  (1)

使用指定的 "Evaluator" 启动一个 Julia 会话:

检查会话中使用的运算器:

关闭该会话:

"SessionProlog"  (1)

"SessionEpilog"  (1)

"SessionEpilog" 在会话结束时执行一些小指令:

"Prolog"  (1)

使用 "Prolog" 可在每次评估前运行一个副作用:

"Epilog"  (1)

使用 "Epilog" 可在每次评估后运行一个副作用:

命令选项  (10)

"Command"  (3)

当只提供一个 Julia 代码字符串时,命令会直接执行:

上面的内容相当于用这种形式写命令:

使用 File 包装器来运行文件中的代码:

上面的内容相当于用这种形式写命令:

将代码放入 CloudObject 中:

从云端直接运行:

相当于用以下形式编写命令:

"ReturnType"  (1)

默认情况下,该命令使用创建会话时指定的 "ReturnType" 执行:

在命令中指定 "ReturnType" 将覆盖会话的 "ReturnType"

"Arguments"  (2)

使用 "Arguments" 来调用带参数的运算结果:

当提供一个非列表参数时,则传递单个参数给函数:

如果你需要传递列表作为第一个参数,该列表必须明确包装在一个额外的列表中:

你可以在 "Command" 中定义一个函数,然后用 "Arguments" 直接调用它:

通过使用 Rule 可以达到同样的效果:

你也可以通过创建一个 ExternalFunction 来传递参数:

"Constants"  (1)

使用 "Constants" 可以在命令运行前永久地设置全局变量:

"TemplateArguments"  (3)

在运行命令时,你可以内联一个 TemplateExpression

可使用 "TemplateArguments"TemplateSlot 进行填充:

当提供非列表参数时,单个模板参数传递给模板:

如果你需要传递列表作为第一个参数,该列表必须明确用一个额外列表进行包装:

可为模板槽命名,并使用 Association 来向模板传递命名的参数:

应用  (2)

使用 Julia 中统计包中的 mean 函数:

使用该函数:

关闭会话:

使用 Julia 中的 OrdinaryDiffEq 程序包解决包解决放射性衰变问题

使用 Wolfram 语言绘制解:

属性和关系  (2)

定义一个调用 Julia 函数的 Wolfram 语言函数:

关闭会话:

NumericArray 作为一个具有相同元素类型的数组被发送到 Julia:

表示传入数组的本地 Julia 类型:

关闭会话: