julia - 当你有一个数组时,如何获得一个结构的项目的最大值?
问题描述
我在 Julia 中有以下结构,并用它创建了一个数组。
julia> struct myStruct
a::Int
b::Int
c::String
end
julia> myArray = myStruct.(1:10,11:20,"ABC")
10-element Array{myStruct,1}:
myStruct(1, 11, "ABC")
myStruct(2, 12, "ABC")
myStruct(3, 13, "ABC")
myStruct(4, 14, "ABC")
myStruct(5, 15, "ABC")
myStruct(6, 16, "ABC")
myStruct(7, 17, "ABC")
myStruct(8, 18, "ABC")
myStruct(9, 19, "ABC")
myStruct(10, 20, "ABC")
我应该在 Julia 中做什么来获得 的最大值a
?
是否建议首先使用结构的前两个值获取一个 2 列数组,然后用于findmax(my2colArray[:,1])
查找最大值?
我有三个问题要了解我该怎么做:
- 如果需要先获取数组,如何有效地获取 2 列数组?
a
如果不需要,我将如何直接从结构数组中获取最大值?- 该字符串最多包含 50 个字符,它们将是 ASCII(非 UTF-8)。我应该以某种方式修复字符串的长度以提高性能吗?
解决方案
您可以使用该maximum
功能。maximum
还接受一个函数,在这种情况下,您可以使用该函数按a
字段排序:
julia> struct myStruct
a::Int
b::Int
c::String
end
julia> myArray = myStruct.(21:30,11:20,"ABC");
julia> val = maximum(x -> x.a, myArray)
30
(稍微修改您的示例以使最大值和索引不同)。
推荐阅读
- c# - 为每个测试夹具定义相同的设置和拆卸
- python - Beautifulsoup 无法提取所有 html
- firebase - 在 Flutter 中创建搜索栏而不不必要地调用 Cloud Firestore 的正确方法是什么?
- macos - 数学 Mac 安装
- reactjs - 如何显示活动指示器,直到从firestore中获取所有数据并使用redux在react native中显示
- c# - 将 ASP.Net Core 3.0 Web 应用程序路由到子域和子文件夹
- javascript - 无法让 registerProtocolHandler 在本地主机上工作
- python - 为什么 re.sub() 函数返回一个空字符串?
- ios - Swift 中 SKShapeNode 的浮点问题
- angularjs - 如何使用 $sce angularJS 1.6 清理未找到的 img