【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.1.17.5.1 Data_table
Contents
Description
Table lookup with interpolation.
Syntax
double Data_table( double dX, Dataset * pdsYdata, Dataset * pdsXdata = NULL )
Parameters
- dX
- [input] The index value used to perform the lookup
- pdsYdata
- [input] The Y dataset, or the row number data set
- pdsXdata
- [input] The X dataset, or the Y dataset when row numbers are specified in the second parameter.
Return
Returns the interpolated lookup value from two sets of monotonic data.
Examples
EX1
// This is a self contained sample program for the function Data_table, // Its sample data is created at the beginning of the program. // To run the program, enter the following command in the Script window: // Data_table_ex1 // It returns like the following three lines: // 1) Find Index=2.5 => B(Y)=100 // 2) Find A(X)=3.0 => B(Y)=100 // 3) Find B(Y)=100.0 => Row#(C)=2.5 // void Data_table_ex1() { double Xval, Yval, RowNumber; Worksheet wks; wks.Create(); wks.AddCol(); Dataset myXDs(wks,0); Dataset myYDs(wks,1); Dataset dsRowNums(wks,2); //******* Create sample data ***************** myXDs.SetSize(3); myYDs.SetSize(3); dsRowNums.SetSize(3); myXDs[0]=1; myYDs[0]=10; dsRowNums[0]=1; myXDs[1]=2; myYDs[1]=40; dsRowNums[1]=2; myXDs[2]=4; myYDs[2]=160; dsRowNums[2]=3; //******** End of Sample Data Creation ******* // Demonstration 1: // To find Y value at given row number, pass desired row number in place of X value and // specify NULL for X data set (Data_table will interpolate for fractional row numbers) Yval=Data_table(2.5,&myYDs,NULL); printf("1) Find Index=2.5 => B(Y)=%g\n",Yval); // Demonstration of Data_table // Demonstration 2: // To find Y value at given X value, pass X value and specify X data set // (Data_table will interpolate for all X values) Yval=Data_table(3.0, &myYDs, &myXDs); printf("2) Find A(X)=3.0 => B(Y)=%g\n",Yval); // Demonstration of Data_table // Demonstration 3: // To find row number of given Y value, pass Y value in place of X value, // specify Y data set as X data set, and pass a data set containing row numbers // {1,2,3,4...} for Y data set (Data_table will interpolate to fractional row numbers) RowNumber=Data_table(100.0, &dsRowNums, &myYDs); printf("3) Find B(Y)=100.0 => Row#(C)=%g\n",RowNumber); // Demonstration of Data_table }
Remark
Table lookup with interpolation from two data sets (X and Y) of monotonic data. To find the y value at a given row number pass the Y data set but pass NULL for the X data set. To find the y value at a given x value pass the Y data set and the X data set. To find the row number of a given y value pass a data set containing row numbers as the Y data set and pass the Y data set as the X data set.
Function Data_list provides table lookup without interpolation.
See Also
Header to Include
origin.h