创建一个3d位置的网格

时间:2012-04-03 18:39:32

标签: arrays ocaml

我想创建一个函数,该函数返回由每个轴上的间隔分隔的3d位置的三维网格

*返回类型(列表网格或数组网格)

type t_grid = (float * float * float) list list list

or

type t_grid = (float * float * float) array array array

*这里是签名:

create_grid width_x height_y depth_z inter_axis_x inter_axis_y inter_axis_z

create_grid : int -> int -> int -> int -> int -> int -> t_grid

我真的不知道如何以优化的方式处理这个问题;

1 个答案:

答案 0 :(得分:1)

您似乎打算将其用于数值计算。如果您的数组具有固定大小,则最好使用“array”而不是“list”,因为数组不可调整大小。列表具有嵌套链接结构的开销。请注意,阵列不能超过200万个浮点数。对较大的阵列使用“Bigarray”。

事实上,请查看“Bigarray”模块的文档。它直接支持多维数组!这肯定比嵌套的数组数组更有效。看这里:

http://caml.inria.fr/pub/docs/manual-ocaml/manual043.html http://caml.inria.fr/pub/docs/manual-ocaml/libref/Bigarray.html

相关问题