首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在julia中组织复杂的数据?

如何在julia中组织复杂的数据?
EN

Stack Overflow用户
提问于 2015-11-05 03:38:26
回答 1查看 113关注 0票数 2

几天前,我决定尝试朱莉娅,并试图将我的一个巨蟒项目翻译给朱莉娅。我知道,使用类型系统对于良好的性能至关重要。但是,我在python中有类似的内容:

代码语言:javascript
运行
复制
class Phonon(object):
    # it has an attribute called D which looks like
    # D = {'on_site': [D00, D11, D22, D33 ...], 'lead':{'l': [Dl00, Dl01, Dl11], 'r': [Dr00, Dr01, Dr11]},'couple': [D01, D12, D23 ...], 'lead_center':{'l': Dlcl, 'r': Dlcr}}
    # all D00, D11, D22 matrices are numpy arrays

如果我把这个翻译成朱莉娅,那就是:

代码语言:javascript
运行
复制
type Phonon:
    D::Dict{ASCIIString, Any}
end

编译器似乎无法获得多少关于phonons的信息。所以我的问题是:朱莉娅的人是如何组织他们复杂的数据的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 04:12:09

如果我能正确理解你,你可能会想要这样的东西:

代码语言:javascript
运行
复制
type PhononDict{T<:Number}
    on_site::Vector{Matrix{T}}
    lead::Dict{ASCIIString, Vector{Matrix{T}}}
    couple::Vector{Matrix{T}}
    lead_center::Dict{ASCIIString, Matrix{T}}
end

我假设numpy数组的元素类型<:Number,您可以将其调整为类似于T<:Union{Int64, Float64}的元素类型。

这里的关键问题是lead::Dict,所以D::Dict{ASCIIString, Any}

代码语言:javascript
运行
复制
julia> typejoin(Array, Dict)
Any

我建议将D转换为复合类型,然后将更多信息传递给编译器。有关参数类型的更多信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33536276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档