求助,本人是julia小白,想请教大佬们一个问题,如何提取tuple元组矩阵(如下)中的某一列数据?网上或中文文档看了很久没找到解决方法,感谢回答!
17-element Vector{Tuple{Float64, Float64, Float64}}:
(602543.7556950828, 3.726594856880262e-5, 0.0028109960834675025)
(738001.7297537203, 3.790573356791245e-5, 0.0023167619030033866)
(895280.3709373648, 3.8597553800332364e-5, 0.001924015338852268)
(1.076480027115302e6, 3.934841155761742e-5, 0.0016087473198658706)
(1.283753333972839e6, 4.016672891845008e-5, 0.0013532749232966763)
(1.5192998812914423e6, 4.10627519909425e-5, 0.0011444184862182628)
(1.785361693800485e6, 4.204910949342175e-5, 0.0009722436701298937)
(2.0842194486802462e6, 4.3141602391623046e-5, 0.0008291818635834181)
(2.4181894084559865e6, 4.4360349960738274e-5, 0.0007094071911383279)
(2.7896210310972054e6, 4.5731505381329104e-5, 0.0006083896418053572)
(3.2008952149241334e6, 4.728992021667748e-5, 0.0005225702233916614)
(3.654423134351435e6, 4.9083471544014106e-5, 0.0004491210310122791)
(4.152645621880484e6, 5.1180489410537746e-5, 0.00038576383224314084)
(4.698033046061507e6, 5.368344021550498e-5, 0.00033062670329713997)
(5.293085800414285e6, 5.675661697956508e-5, 0.0002821188113835604)
(5.940334797530339e6, 6.069007449796829e-5, 0.00023879258255953898)
(6.642343003323888e6, 6.608037704807668e-5, 0.0001991064058276379)
x=[(602543.7556950828, 3.726594856880262e-5, 0.0028109960834675025)
(738001.7297537203, 3.790573356791245e-5, 0.0023167619030033866)
(895280.3709373648, 3.8597553800332364e-5, 0.001924015338852268)
(1.076480027115302e6, 3.934841155761742e-5, 0.0016087473198658706)
(1.283753333972839e6, 4.016672891845008e-5, 0.0013532749232966763)
(1.5192998812914423e6, 4.10627519909425e-5, 0.0011444184862182628)
(1.785361693800485e6, 4.204910949342175e-5, 0.0009722436701298937)
(2.0842194486802462e6, 4.3141602391623046e-5, 0.0008291818635834181)
(2.4181894084559865e6, 4.4360349960738274e-5, 0.0007094071911383279)
(2.7896210310972054e6, 4.5731505381329104e-5, 0.0006083896418053572)
(3.2008952149241334e6, 4.728992021667748e-5, 0.0005225702233916614)
(3.654423134351435e6, 4.9083471544014106e-5, 0.0004491210310122791)
(4.152645621880484e6, 5.1180489410537746e-5, 0.00038576383224314084)
(4.698033046061507e6, 5.368344021550498e-5, 0.00033062670329713997)
(5.293085800414285e6, 5.675661697956508e-5, 0.0002821188113835604)
(5.940334797530339e6, 6.069007449796829e-5, 0.00023879258255953898)
(6.642343003323888e6, 6.608037704807668e-5, 0.0001991064058276379)]
julia> [ a[1] for a in x]
17-element Vector{Float64}:
602543.7556950828
738001.7297537203
895280.3709373648
1.076480027115302e6
1.283753333972839e6
1.5192998812914423e6
1.785361693800485e6
2.0842194486802462e6
2.4181894084559865e6
2.7896210310972054e6
3.2008952149241334e6
3.654423134351435e6
4.152645621880484e6
4.698033046061507e6
5.293085800414285e6
5.940334797530339e6
6.642343003323888e6
这种时候其实你应该用 matrix 吧
或者用 getindex
向量化
triples = [(rand(), rand(), rand()) for _ in 1:10]
col2 = getindex.(triples, 2) # 取第二列
col1to2 = getindex.(triples, Ref(1:2)) # 取 1-2 列
col3 = last.(triples) # 取最后一列
col1 = first.(triples) # 取第一列
1 个赞
Ref
把对象处理成标量,用列表生成式理解的话
f.(data, para) <=> [f(d, p) for (d, p) in zip(data, para)]
f.(data, Ref(para)) <=> [f(d, para), for d in data)]
1 个赞