---
title: kml_?_interp2d_init
description: "初始化插值对象interp。数据(xarr, yarr, zarr)中，xarr和yarr分别是大小为xsize和ysize的数组，zarr是函数结果数组，大小为xsize * ysize。插值对象（kml_float_interp2d，kml_double_interp2d）不保存xarr，yarr，zarr的数据数组，它只存有从数据中计算出的静态状态。xarr和yarr数据数组必须是严格升序排列的。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0523.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0523.html
indexId: 06653b049e62c2607e6c16f63fa955907778b12b2d2916f3f7f44c4e5d3306a361
---
# kml_?_interp2d_init

初始化插值对象interp。数据(xarr, yarr, zarr)中，xarr和yarr分别是大小为xsize和ysize的数组，zarr是函数结果数组，大小为xsize * ysize。插值对象（kml_float_interp2d，kml_double_interp2d）不保存xarr，yarr，zarr的数据数组，它只存有从数据中计算出的静态状态。xarr和yarr数据数组必须是严格升序排列的。

#### 接口定义

int kml_float_interp2d_init(kml_float_interp2d *interp, const float xarr[], const float yarr[], const float zarr[], const size_t xsize, const size_t ysize)

int kml_double_interp2d_init(kml_double_interp2d *interp, const double xarr[], const double yarr[], const double zarr[],

const size_t xsize, const size_t ysize);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| interp | kml\_float\_interp2d\* / kml\_double\_interp2d\* | 指向插值对象的指针。 | 输出 |
| xarr | float类型数组 / double类型数组 | 存有x值的数组。 | 输入 |
| yarr | float类型数组 / double类型数组 | 存有y值的数组。 | 输入 |
| zarr | float类型数组 / double类型数组 | 存有z值的数组。 | 输入 |
| xsize | size\_t | x数组长度。 | 输入 |
| ysize | size\_t | y数组长度。 | 输入 |


#### 依赖

#include "kipl.h"


#### 示例

```
const size_t xSize = 4;
const size_t ySize = 4;
float xArr[4] = {1,1.33,1.67,2};
float yArr[4] = {1,1.33,1.67,2};
float* zArr = (float*)malloc(xSize * ySize * sizeof(float));
kml_float_interp2d *interp = kml_float_interp2d_alloc(kml_float_interp2d_bicubic, xSize, ySize);
kml_float_interp2d_init(interp, xArr, yArr, zArr, xSize, ySize);
```
