Julia - 数组中值的乘法
Julia - Multiplication of values in an array
如果我有一个带有随机值的数组 A,我想定义一个数组 B,对于长度 A 中的每个 i,B[i] = (A[i])²
首先,我尝试了以下代码:
using Distributions
A = rand(Uniform(1,10),1,20)
B = A
for i in 1:20
B[i] = (A[i])^2
end
经过这些操作,我有A = B
A
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
B
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
所以我尝试了另一种方法:
B = A^2
出现以下错误:
ERROR: DimensionMismatch("A has dimensions (1,20) but B has dimensions (1,20)")
如果我这样做,例如,B = 2*A
它工作正常...
一些有用的想法?
谢谢
我认为这里最简单的解决方案是通过 .
使用广播。
julia> A = rand(Uniform(1,10),1,20)
1×20 Array{Float64,2}:
8.84251 1.90331 8.5116 2.50216 … 1.67195 9.68628 4.05879 1.50231
julia> B = A .^ 2
1×20 Array{Float64,2}:
78.19 3.62257 72.4473 6.26081 … 2.7954 93.8241 16.4738 2.25693
这给了你你所期望的:
julia> A
1×20 Array{Float64,2}:
8.84251 1.90331 8.5116 2.50216 … 1.67195 9.68628 4.05879 1.50231
julia> B
1×20 Array{Float64,2}:
78.19 3.62257 72.4473 6.26081 … 2.7954 93.8241 16.4738 2.25693
此 .
运算符适用于任何函数及其作用,它将所有函数广播(应用)到 array/object.
的每个元素
这是一个带有自定义函数的示例:
julia> my_func(a) = a * 5
my_func (generic function with 1 method)
julia> my_func.(1:5)
5-element Array{Int64,1}:
5
10
15
20
25
查看 the docs 了解更多信息。
如果我有一个带有随机值的数组 A,我想定义一个数组 B,对于长度 A 中的每个 i,B[i] = (A[i])²
首先,我尝试了以下代码:
using Distributions
A = rand(Uniform(1,10),1,20)
B = A
for i in 1:20
B[i] = (A[i])^2
end
经过这些操作,我有A = B
A
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
B
1×20 Array{Float64,2}:
26.0478 5.36654 99.675 23.18 … 1.54846 91.3444 9.41496 2.91666
所以我尝试了另一种方法:
B = A^2
出现以下错误:
ERROR: DimensionMismatch("A has dimensions (1,20) but B has dimensions (1,20)")
如果我这样做,例如,B = 2*A
它工作正常...
一些有用的想法?
谢谢
我认为这里最简单的解决方案是通过 .
使用广播。
julia> A = rand(Uniform(1,10),1,20)
1×20 Array{Float64,2}:
8.84251 1.90331 8.5116 2.50216 … 1.67195 9.68628 4.05879 1.50231
julia> B = A .^ 2
1×20 Array{Float64,2}:
78.19 3.62257 72.4473 6.26081 … 2.7954 93.8241 16.4738 2.25693
这给了你你所期望的:
julia> A
1×20 Array{Float64,2}:
8.84251 1.90331 8.5116 2.50216 … 1.67195 9.68628 4.05879 1.50231
julia> B
1×20 Array{Float64,2}:
78.19 3.62257 72.4473 6.26081 … 2.7954 93.8241 16.4738 2.25693
此 .
运算符适用于任何函数及其作用,它将所有函数广播(应用)到 array/object.
这是一个带有自定义函数的示例:
julia> my_func(a) = a * 5
my_func (generic function with 1 method)
julia> my_func.(1:5)
5-element Array{Int64,1}:
5
10
15
20
25
查看 the docs 了解更多信息。