Math Julia—数组的绝对值

Math Julia—数组的绝对值,math,julia,linear-algebra,absolute-value,Math,Julia,Linear Algebra,Absolute Value,我想获得以下数组的绝对值: x = [1.1 -22.3 3.01, -1] i、 e:我需要类型为:x2=[1.1 22.3 3.01 1] 但是,当我键入时: abs(x) 我得到一个错误: ERROR: MethodError: no method matching abs(::Array{Float64,2}) Closest candidates are: abs(::Pkg.Resolve.MaxSum.FieldValues.FieldValue) at /Users/va

我想获得以下数组的绝对值:

x = [1.1 -22.3 3.01, -1]
i、 e:我需要类型为:
x2=[1.1 22.3 3.01 1]
但是,当我键入时:

abs(x)
我得到一个错误:

ERROR: MethodError: no method matching abs(::Array{Float64,2})
Closest candidates are:
  abs(::Pkg.Resolve.MaxSum.FieldValues.FieldValue) at /Users/vagrant/worker/juliapro-release-osx1011-0_6/build/tmp_julia/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Pkg/src/resolve/FieldValues.jl:67
  abs(::Pkg.Resolve.VersionWeights.VersionWeight) at /Users/vagrant/worker/juliapro-release-osx1011-0_6/build/tmp_julia/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Pkg/src/resolve/VersionWeights.jl:40
  abs(::Missing) at missing.jl:79
  ...
Stacktrace:
 [1] top-level scope at none:0

Julia不会自动将标量函数(如
abs
)应用于数组元素。相反,您应该告诉Julia这是您想要的,并在数组上广播标量函数
abs
,请参阅。这可以按如下方式完成

julia> x = [1.1, -22.3, 3.01, -1];

julia> broadcast(abs, x)
4-element Array{Float64,1}:
  1.1 
 22.3 
  3.01
  1.0
或者,您可以使用“点符号”,这更具表意性:

julia> abs.(x)
4-element Array{Float64,1}:
  1.1 
 22.3 
  3.01
  1.0

您是否希望
abs
返回一个数组,其中所有元素都是它们的绝对值?感谢您的评论@George。对我需要类型为
x2=[1.1 22.3 3.01]
的结果。我将在这个意义上更新这个问题,我想看一下I=0的文档
:长度(x)x[I]=abs(x[I])end
可以吗?或者调整一个新的
x2
的大小,并使用相同的for循环分配给它。这种方法非常方便,特别是对于更复杂的情况<代码>@。x2=abs(x)