gpt4 book ai didi

multidimensional-array - Julia:在不固定 n 的情况下索引到 n 维数组的语法

转载 作者:行者123 更新时间:2023-12-02 03:18:11 24 4
gpt4 key购买 nike

我正在尝试使用 Julia 的Interpolations 包对在 n 维网格上采样的函数进行插值。 Interpolations 包使用类似于数组索引的语法来指定插入数据的点(事实上,Interpolations 包似乎从 Base 导入用于数组索引的 getindex 函数)。例如对于 n=2 以下代码:

using Interpolations 

A_grid = [1 2; 3 4]
A = interpolate((0:1, 0:1), A_grid, Gridded(Linear()))
a = A[0.5, 0.5]
println(a)

打印中点 (0.5, 0.5) 处的线性插值结果。

现在,如果我有一个 n 维向量(例如,n=2 维的 index_vector = [0.5, 0.5]),我发现我可以通过编写

a = A[index_vector[1], index_vector[2]]

但我一般无法做到这一点。也就是说,我想找到/编写一个函数,它接受一个 n 维数组 A 和一个长度为 n 的向量 index_vector 并返回

A[index_vector[1], ... , index_vector[n]]

其中 n 事先未知。当 index_vector 的条目不一定是整数时,有没有办法做到这一点?

最佳答案

我认为您可以为此使用 splat (...)。 ... 将集合的元素“分配”到参数槽:

using Interpolations 

A_grid = [1 2; 3 4]
A = interpolate((0:1, 0:1), A_grid, Gridded(Linear()))
index_vector = [0.5, 0.5]
a = A[index_vector...]
println(a)

给出与您的示例相同的结果。

关于multidimensional-array - Julia:在不固定 n 的情况下索引到 n 维数组的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35304135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com