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