在 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 中使用此函数执行和执行了哪些操作。我们还执行了映射矩阵的函数。