Julia:将用户定义的结构传递给函数时出错

Julia:将用户定义的结构传递给函数时出错,julia,Julia,我将这些结构定义为: struct CLocation{T<:Real} x::Array{T,1} y::Array{T,1} z::Array{T,1} end struct CSize{T<:Real} x::Array{T,1} y::Array{T,1} z::Array{T,1} end struct FLocation{T<:Real} x::Array{T,1} y::Array{T,1} z::Array{T,1} en

我将这些结构定义为:

struct CLocation{T<:Real}
  x::Array{T,1}
  y::Array{T,1}
  z::Array{T,1}
end

struct CSize{T<:Real}
  x::Array{T,1}
  y::Array{T,1}
  z::Array{T,1}
end

struct FLocation{T<:Real}
  x::Array{T,1}
  y::Array{T,1}
  z::Array{T,1}
end

struct MStructure
  dimension::Real
  dims::Array{Int,1}
  csize::CSize
  ccenters::CLocation
  fcenters::FLocation
  corner::Array{Int,1}
  edge::Array{Int,1}
end

struct CValue # {T<:Real}
  domain::MStructure
  value::Union{Array{<:Real}, DenseArray{Bool}} #Union{Array{T}, BitArray{}}
end
c_new = Vector{CValue}(undef,N)
x_new = Vector{CValue}(undef,N)
c_tot::CValue
其中,
c_tot
只是类型
CValue
c_new
x_new
是大小
N
的向量,向量的每个条目都是类型
CValue

我想通过2个操作传递这些变量,我希望将其转换为函数:

x_new = [c_new[i]/c_tot for i in 1:N]
我的意图是该函数将
c_new[i]中的每个数值除以
c_tot.value
中的相应值,得到大小为N的向量
x_new

我想对每个c_new[I].value的所有值求和,给出类型为
CValue

我收到的错误是:

ERROR: LoadError: MethodError: no method matching /(::CValue, ::Vector{CValue})

必须对创建的自定义类型定义操作。在这里,我想你需要定义如下

Base.:/(a::CValue, b::CValue) = a.value / b.value
(请注意,如果可以提供复制错误的可复制可复制代码,则更容易帮助您。)

Base.:/(a::CValue, b::CValue) = a.value / b.value