VC++编写一维插值、二维插值代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC++智能读取TXT数据文件的代码
工程师们在编写代码作各种工程计算的时候,很多时候会从外部TXT文件中读取数据。
读入的数据通常作为一个二维矩阵存储起来,以供各类封装函数调用。
读取数据的基本原则是,准确且完整的描述读取的数据内容,必须准确读取数值、准确识别二维数据的行列数。
数据的使用通常是对其按照行列进行二维插值,以下代码完成读取TXT文件数据后,对该二维矩阵进行二维差值。
首先,预定义一维整形动态数组用于存储TXT数据的行列数,预定义二维浮点型动态数组用于存储TXT数据的行列数,如下:
#define I1vect vector< int >
#define D1vect vector< double >
#define D2vect vector< vector< double > >
函数声明与定义:
double interp1(D1vect x, D1vect y, double xt, char key)
一维插值函数形参分别为:
D1vect x,对应自变量向量;
D1vect y,对应因变量向量;
double xt,用于插值的点;
char key,key=0代表内插值,key=1代表外插。
double interp2(D2vect data, I1vectlh, double xt, double yt, char key)
一维插值函数形参分别为:
D2vect data,二维浮点型数据矩阵;
Ivect lh,二维整型数据矩阵,存放data矩阵的列数和行数,即lh(0) = 列数;lh(1) = 行数D1vect x;
double xt,用于插值的点的横坐标;
double yt,用于插值的点的纵坐标;
char key,key=0代表内插值,key=1代表外插。
一维插值调用代码示例:
D1vect x, y;
Double xt,
Int key = 0; // 或1
yt = interp1(x, y, x, key);
一维插值调用代码示例:
D2vect data;
I1vect lh;
double xt, yt;
Int key = 0; // 或1
yt = interp2(data, lh, xt, yt, key); 完整代码见下一页。