📜  在 Julia 中映射矩阵

📅  最后修改于: 2022-05-13 01:54:20.283000             🧑  作者: Mango

在 Julia 中映射矩阵

Julia 被称为并行计算的一种新方法。 Julia 是一种用于交互式使用的高级动态编程语言。 Julia 将 R 和Python等标量环境的实现与Java和 C++ 等动态编程语言的速度相结合,为大数据和分析问题提供了系统的解决方案。

Julia 命令外壳

因为每种编程语言都有其开发动态模型的环境。显然 Julia 还具有交互式命令 shell REPL(REPL 代表 read-eval-print-loop)。

示例:基本函数
输入:

Julia> a(x) = 2x^3+1; f(x, y) = 1 + a(x)y
Julia> println(“Hello World!”, “ I’m “, f(2, 1), “Welcome to Julia!”)

在这里,我们声明了 a(x),其中 x 是函数f(x, y) 的参数。我们已经为 a(x) 分配了一个操作 (2x^3+1)。因此“^”运算符执行乘法。现在有一个函数f(x, y) 通过执行在传递参数值时声明的特定操作来给我们一个结果。

输出:

Hello World! I’m 18 Welcome to Julia!

矩阵映射

在 Julia 中映射矩阵只不过是对矩阵中的每个元素执行一个函数或一个操作。

例如,让我们在 Julia 中创建一个矩阵并以清晰的方式理解这些术语。

julia> variable = [1 2 3 4 5 6]
1×6 Array{Int64, 2}:
1  2  3  4  5  6

在这里,我们创建了一个 1×6 矩阵(由 1 行和 6 列组成)。我们还可以创建不同维度和不同数据类型范围(即float、int、double)的矩阵,而无需在声明值时指定类型。

在上图中,创建了一个整数数据类型的 3×4 阶矩阵。

执行地图函数:

在上图中,代码在 Julia 命令行中执行,我在其中创建了一个 3×3 阶矩阵。

我们已经对矩阵c执行了上图中的map函数。这里 x 是一个变量,它存储矩阵 c 中存在的每个值。

  • 让我们考虑现在存储在 x (x = 1) 中的矩阵“c”(即 1)中的第一个元素。
  • ( x -> x*2 ) 向我们解释了变量 x 正在分配 x*2 的值。因此我们将其解释为 (x = 1* 2)
  • 正是对矩阵中存在的每个单独值执行此操作。
  • 因此,我们在使用 map函数执行操作后获得结果。
在两个矩阵上执行映射函数:

在上面解释的例子中,我们已经看到在单个矩阵(即 c)上执行的操作。现在让我们通过对两个不同的矩阵执行操作来了解映射技术。

julia> f = [1 2 3; 1 2 3; 1 2 3]
3×3 Array{Int64, 2}:
 1  2  3
 1  2  3
 1  2  3

创建了一个 3×3 阶矩阵“f”。

julia> c = [2 1 1; 1 1 2; 2 1 2]
3×3 Array{Int64, 2}:
 2  1  1
 1  1  2
 2  1  2

创建了一个 3×3 阶的矩阵“c”。

julia> map(x -> f*x*2, c)
3×3 Array{Array{Int64, 2}, 2}:
 [4 8 12; 4 8 12; 4 8 12]  [2 4 6; 2 4 6; 2 4 6]  [2 4 6; 2 4 6; 2 4 6]
 [2 4 6; 2 4 6; 2 4 6]     [2 4 6; 2 4 6; 2 4 6]  [4 8 12; 4 8 12; 4 8 12]
 [4 8 12; 4 8 12; 4 8 12]  [2 4 6; 2 4 6; 2 4 6]  [4 8 12; 4 8 12; 4 8 12]
  • 我们使用 map函数对矩阵 (f & c) 执行操作。
  • x 是一个变量,它存储每个操作的 c 的每个值。
  • 现在让我们试着理解上面代码中的逻辑。
  • 考虑'c'矩阵中的第一个值,它被认为是'2'。
  • 作为矩阵 c 中的第一个元素的整数“ 2 ”现在存储在 x 中(即 (x -> f*x*2 ) == (x = f*2*2) )
  • 下一个操作是将矩阵“ f ”的每个元素乘以上述步骤(x = f * 2 * 2)
  • 在这里,我们可以看到矩阵'c'(即2)中的第一个元素以逐行方式与矩阵'f'的所有值相乘。
  • 显然,在乘以矩阵'c'(即2)中的第一个元素之后。现在编译器将“x”的值转移到矩阵“c”中的下一个值(按行考虑)(即1)
  • 因此, (即 (x -> f*x*2 ) == (x = f*2*2) ) 变为 (即 (x -> f*x*2 ) == (x = f*1* 2))。并且矩阵“f”中的每个元素都将乘以值“1”
  • 相同的过程重复如此等等。


最终执行的输出图像。

结论:

因此,我们现在了解了什么是 Julia 中的映射函数,以及在 Julia 中使用此函数执行和执行了哪些操作。我们还执行了映射矩阵的函数。