的第一步。 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*中编写和运行的。 为此,使用以下内容 脚本编辑器 —一个方便的工具,一步一步的工作与代码,可视化和注释,或 命令行
-为有经验的用户提供更熟悉的环境。
要更快更方便地使用*Engee*中的代码,请使用键盘快捷键。 它们允许您管理脚本,运行计算,在界面中导航并节省时间。 完整的组合列表可在文章中找到。 Engee 热键 或者直接在*Engee*(组合)中调用帮助 Shift+?). |
脚本编辑器
交互式脚本是一种特殊的文档格式,其中代码、文本和图形被组合成一个单一的工作结构。 您可以直接从以下位置打开脚本编辑器 界面Engee-只需点击图标 在工具栏中。 要创建脚本,请在脚本编辑器中单击*+*并选择所需的格式。:
→
您也可以点击*文件浏览器* 并选择*创建*→脚本:
默认情况下,Engee脚本具有’ngscript’格式,但您也可以使用`jl`和`ipynb`格式。:
|
交互式脚本由单元格组成-可以独立运行的单独块。 有两种类型的细胞:
-
代码-设计与代码一起工作。 这样的单元格可以一次运行一个,只执行选定的片段,或执行整个代码。
-
文本-用于解释,公式和视觉设计。 支持Markdown、LaTeX和HTML。
要运行脚本,只需单击 节省 在发射器。 在这种情况下,所有代码单元都按顺序执行。 您也可以运行单个单元格,甚至只是一个专用的代码段。:
执行结果直接出现在代码下面,并保存到重新启动。 如有必要,可以使用*限制输出按钮最小化、清除或隐藏输出。 *:
要构建脚本,使用形成段落的标题很方便。 段落可以折叠并通过面板导航。 目录 :
此外,代码单元掩码可以在脚本中使用。 -特殊的交互式控件,如滑块,下拉列表或输入字段。 它们允许您更改代码参数,而无需重写代码本身。
示例中详细讨论了代码单元掩码的使用。 屏蔽交互式脚本的代码单元格。 |
命令行
如果你习惯在终端工作,那么 命令行 *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'。 要输入'÷',请使用:
或者在命令提示符中写入\div并按 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。读(。..)'-将文件中的数据加载回表。