Engee 文档

的第一步。 Engee技术计算简介

如果您刚刚开始进行技术计算,那么*Engee*是一个很好的地方。 该平台专门设计用于帮助工程师和程序员以简单,直观和方便的方式创建复杂的技术系统和算法。

交互式脚本开发环境*Engee*支持多种编程语言:Julia、Python、MATLAB、C/C++等。,但主要的是 Julia是一种用于工程和科学任务的现代,快速和用户友好的语言。

如果你还没有选择一门语言来学习或正在寻找替代语言,那么以下是Julia提供的优势:

优势 资料描述

简单易行

语法类似于Python-它易于阅读并快速掌握。

高性能

它的工作速度与C几乎相同,但没有C/C++的复杂性。

强大的数学

Julia支持开箱即用的向量、矩阵和数值数据。

可扩展性

连接第三方库并与其他语言一起工作很容易。

多功能性

Julia既适用于简单的任务,也适用于构建复杂的算法、模拟和数据分析。

除了所有这些优点,*Engee*提供了一个完整的,定期更新 朱莉娅文档在俄罗斯,这将是有用的工程师和程序员的任何经验。 如果你想要灵感或 例子从实践—看看 Engee社区,用户分享他们的项目,脚本和想法。

如果您刚刚开始与Julia的旅程,那么我们建议您熟悉该课程 欢迎来到恩吉,这将帮助您快速习惯*Engee*环境。

对于那些已经有技术计算经验的人,在 link:/helpcenter/stable/cn/interactive-scripts/language_basics.html这些示例还展示了各种Julia使用场景,这些场景将帮助您更深入地了解该语言的功能。

开始行动

Engee拥有使用代码所需的一切。:

现在让我们仔细看看代码是如何在*Engee*中编写和运行的。 为此,使用以下内容 脚本编辑器 interactive script icon —一个方便的工具,一步一步的工作与代码,可视化和注释,或 命令行 img 41 1 2 -为有经验的用户提供更熟悉的环境。

要更快更方便地使用*Engee*中的代码,请使用键盘快捷键。 它们允许您管理脚本,运行计算,在界面中导航并节省时间。 完整的组合列表可在文章中找到。 Engee 热键 或者直接在*Engee*(组合)中调用帮助 Shift+?).

脚本编辑器

交互式脚本是一种特殊的文档格式,其中代码、文本和图形被组合成一个单一的工作结构。 您可以直接从以下位置打开脚本编辑器 界面Engee-只需点击图标 interactive script icon 在工具栏中。 要创建脚本,请在脚本编辑器中单击*+*并选择所需的格式。:

40%img36c 1 cn

您也可以点击*文件浏览器* file browser 7 并选择*创建*→脚本:

script creation fb cn

默认情况下,Engee脚本具有’ngscript’格式,但您也可以使用`jl`和`ipynb`格式。:

  • 'jl’是Julia语言中的脚本格式。 脚本编辑器支持重构和运行这种格式的脚本。;

  • ipynb是Python中通用的脚本编写格式。 脚本编辑器支持ngscript级别的所有可用功能。

交互式脚本由单元格组成-可以独立运行的单独块。 有两种类型的细胞:

script editor 1 cn

  • 代码-设计与代码一起工作。 这样的单元格可以一次运行一个,只执行选定的片段,或执行整个代码。

    img52 cn

  • 文本-用于解释,公式和视觉设计。 支持Markdown、LaTeX和HTML。

    img44 cn

要运行脚本,只需单击 节省 在发射器。 在这种情况下,所有代码单元都按顺序执行。 您也可以运行单个单元格,甚至只是一个专用的代码段。:

img 49 1 cn

执行结果直接出现在代码下面,并保存到重新启动。 如有必要,可以使用*限制输出按钮最小化、清除或隐藏输出。 colapse button*:

in long hide 1 cn

要构建脚本,使用形成段落的标题很方便。 段落可以折叠并通过面板导航。 目录 content button 1:

in scripts par cn

此外,代码单元掩码可以在脚本中使用。 masks script pool 1 -特殊的交互式控件,如滑块,下拉列表或输入字段。 它们允许您更改代码参数,而无需重写代码本身。

示例中详细讨论了代码单元掩码的使用。 屏蔽交互式脚本的代码单元格

命令行

如果你习惯在终端工作,那么 命令行 img 41 1 2 *Engee*是一个很好的解决方案。 命令行 它不仅允许您执行代码,还可以使用shell命令,管理包,编辑文件,使用Git和访问帮助—所有这些都在一个窗口! *Engee*命令行支持多种操作模式,每种操作模式适用于不同的任务。:

  • *普通模式*是交互式执行命令并立即显示的主界面。

  • 帮助模式-允许您快速获取有关功能和模块的信息。 它被称为使用问号。 ?.

  • *Shell模式*用于执行操作系统命令。 它被称为使用符号 ;.

  • 包管理器模式-允许您管理Julia包和依赖项。 它被称为使用符号 ].

  • 搜索模式-提供命令历史搜索。 它们被称为使用键盘快捷键 Ctrl+R 相反, Ctrl+S 供直接(向前)搜索。

  • 文本编辑器模式-允许您直接从命令行编辑文件。 它们使用命令"vi","vim"和"nano"从shell模式调用。

阅读文章中有关每种模式的更多信息。 命令行.

如果您使用Git项目、克隆存储库、进行编辑和提交,*Engee*中的命令行提供了所有必要的工具。 阅读更多关于这在一个单独的系列文章。 使用Git.

此外,在*Engee*中,您可以结合两种方法:在脚本编辑器中编写代码,并从命令行运行单个命令或实用程序。 这种混合方法允许您有效地解决小任务和大型项目。

与朱莉娅合作

Julia语言被设计为*既简单,可读又非常快速*。 这是伟大的工程和科学任务,但在同一时间它的语法是直观的,特别是对于那些谁是熟悉Python或MATLAB。 下面是Julia上的简单代码示例:

println("你好,世界!")

'println’是一个内置函数,用于将文本输出到控制台。 您可以直接在命令行或脚本编辑器中运行此代码。

Julia立即支持处理数字,字符串,数组,循环,条件和函数。 例如:

  • 数组元素之和:

    arr = [1, 2, 3, 4, 5]
    println(sum(arr))
  • 自定义函数:

    f(x) = x^2 + 2x + 1
    println(f(3))

您可以从基本结构开始,逐步连接包并根据需要使用其他语言功能。 有关更多信息,请参阅下文。

朱莉娅包

Julia是一种语言,拥有一个活跃的社区,开发了许多有用的软件包。 在*Engee*中,您可以轻松连接和使用Julia软件包,扩展功能以满足您的需求。 有关使用包的详细信息,请参阅文章 使用Julia软件包.

数据可视化

你需要可视化你的计算吗? 在*Engee*中,您可以使用Plots包直接在代码中创建和自定义图形。 有关详细信息,请参阅 绘制图表.

软件仿真管理

在*Engee*中,您可以使用内置方法和命令以编程方式创建和管理模型。 这允许您自动化创建模型的过程:添加块,用信号线连接它们,配置参数和属性以及执行其他操作。 您可以在文章中了解有关软件建模管理的更多信息 软件控制建模.

朱莉娅的基本设计

Julia尽可能地对用户友好,但与此同时提供了对语言的整个生产组件的访问。 接下来,我们将分析其基本功能和设计。

变量和数据类型

Julia是一种动态类型语言:可以在不指定类型的情况下声明变量。 考虑一个例子:

a = 3           # 没有分号,结果输出到控制台。
b = 4;          # 使用分号,结果不输出。
c = a + b       # 两个变量的和
println("金额: ", c)  # 显式文本和意义输出

m = n = a ÷ b   # 整数除法和多重赋值

整数除法('÷')只返回结果的整数部分,没有余数。 例如,`7-3’将返回'2'。

要输入'÷',请使用:

  • 在*Windows*/Linux-key Alt 并在数字键盘上键入`0247'。;

  • 在*macOS*上-单击 Option (⌥) + /.

或者在命令提示符中写入\div并按 Tab. 其他经常使用的特殊字符也将是有用的。:

  • 'pi—-`\pi'+'Tab'(Pi的个数);

  • √'-'\sqrt'+'Tab'(平方根);

  • '∑'—'\sum'+'Tab'(求和);

  • '→'-'\rightarrow'+'Tab'(箭头)。

在上面的代码中,变量没有被赋予类型,但是尽管动态类型,Julia是一种计算语言,这意味着性能起着关键作用。 为了尽可能有效地使用Julia,强烈建议显式指定类型。 例如:

x::Int64 = 42
y::Float64 = 3.14

这允许Julia执行精确的优化,并避免在代码执行过程中不必要的类型转换。 我们建议您熟悉下表中Julia的主要类型:

类型(英文) 类型(Rus) 例子:

Int型

一个整数

'a=5`

漂浮64

小数部分

'b=3.14`

布尔

逻辑价值

'is_valid=true`

查尔

符号(一个字符)

'信='A"

字符串

一行文字

'姓名="朱莉娅"`

向量资料

向量(齐次列表)

'数字=[1,2,3]`

元组

元组(不可变的值集)

'数据=(1,"你好",true)`

Vector包含相同类型的元素(通常是数字),Tuple包含不同类型的值,并且在创建后无法更改。

功能

函数允许您构建代码并使用重复逻辑。 下面是一个常规函数的例子:

function add(a, b)
    return a + b
end

在这里,我们定义’add’函数,它接受两个参数并返回它们的总和。 您可以用更短的形式编写相同的函数。:

add2(a, b) = a + b

这里是如何触发它:

result = add(5, 7)
println("金额: ", result)

有关函数的详细信息,请参阅文章 功能.

条件和周期

为了在特定条件下执行代码或重复操作,使用控制结构’if','for','while'。

条件运算符:

x = -1

if x > 0
    println("正数")
elseif x == 0
    println("零")
else
    println("负数")
end

'For’循环对范围内的每个值执行一个操作:

for i in 1:5
    println("迭代 ", i)
end

当条件为true时执行`while’循环:

n = 3
while n > 0
    println("左图: ", n)
    n -= 1
end

有关详细信息,请参阅文章 基本结构.

数组和向量

数组允许您存储数据序列,例如测量结果或参数。

v = [1, 2, 3, 4]
println(v[2])    # 访问第二个元素
v[3] = 10        # 更改索引值

有关详细信息,请参阅文章 Engee 中的数组、向量和矩阵.

矢量化和索引

Julia允许您一次将操作应用于整个数组,而无需显式循环—这称为矢量化。 它不仅方便,而且速度快。

v = [1, 2, 3, 4]
v_squared = v .^ 2         # 平方每个元素
positive = v .> 2          # 逻辑比较:超过2
filtered = v[positive]     # 按条件选择元素

有关详细信息,请参阅文章 矢量化和逻辑索引.

有用的例子

当您已经学会了如何使用变量、函数和条件时,是时候继续与外部数据交互了:文件、表和结构。 下面是一些有用的例子,你可以很容易地在不同的工作情况下遇到。

读取和写入文件

有时您需要将数据保存到文件中,或者相反,从中下载。

open("output.txt", "w") do f # 将行写入文件
    write(f, "Hello, file!")
end

这里:

  • '"输出。txt"'是文件名;

  • `"w"'—写入模式;

  • '做f。.. 结束’是一种特殊的形式,记录后自动关闭文件。

现在让我们读同一个文件。:

content = read("output.txt", String) # 读取文件内容
println("读吧: ", content)

'Read(filename,String)`函数将整个内容加载为字符串。

使用JSON

JSON(JavaScript Object Notation)格式是在程序之间存储和交换数据的最流行方式之一。 Julia使用JSON库来处理它。

using JSON

data = Dict("name" => "Alice", "age" => 30) # 创建字典

json_str=JSON。json(data)# 将字典转换为JSON中的字符串
println(json_str)

解析=JSON。parse(json_str)# 将JSON解析回
println结构(解析["name"])

这里:

  • 'Dict’是一个字典(键值结构);

  • 'JSON。json(。..)'-将字典或其他数据转换为JSON格式的字符串,以便可以保存或传输数据。;

  • 'JSON。解析(。..)'-将字符串转换回字典。

使用表(CSV和DataFrame)

表格是处理数据最方便的格式之一。 Julia为此提供了一个`DataFrames’包。:

using DataFrames, CSV

df = DataFrame(Name=["Alice", "Bob"], Age=[30, 25]) # 创建表

CSV.write("people.csv", df) # 将其保存到CSV文件

df2 = CSV.read("people.csv", DataFrame) # 从文件上传回来
println(df2)

这里:

  • 'DataFrame(。..)'-创建列表;

  • 'CSV。写(。..)'-将桌子保存给’人。csv档案;

  • 'CSV。读(。..)'-将文件中的数据加载回表。