本文整理汇总了C++中Grid2D::GetNJ方法的典型用法代码示例。如果您正苦于以下问题:C++ Grid2D::GetNJ方法的具体用法?C++ Grid2D::GetNJ怎么用?C++ Grid2D::GetNJ使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Grid2D
的用法示例。
在下文中一共展示了Grid2D::GetNJ方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: K
void Kriging2D::krigSurface(Grid2D & trend,
const KrigingData2D & krigingData,
const CovGrid2D & cov,
bool getResiduals)
{
//
// This routine by default returns z(x) = m(x) + k(x)K^{-1}(d - m). If only
// residuals are wanted a copy of the input trend
//
int md = krigingData.getNumberOfData();
const std::vector<int> & indexi = krigingData.getIndexI();
const std::vector<int> & indexj = krigingData.getIndexJ();
std::vector<float> data = krigingData.getData(); // Take an editable copy
int nx = static_cast<int>(trend.GetNI());
int ny = static_cast<int>(trend.GetNJ());
if (md > 0 && md < nx*ny) {
NRLib::SymmetricMatrix K(md);
NRLib::Vector residual(md);
NRLib::Vector k(md);
NRLib::Vector x(md);
subtractTrend(residual, data, trend, indexi, indexj);
fillKrigingMatrix(K, cov, indexi, indexj);
NRLib::CholeskySolve(K, residual, x);
for (int i = 0 ; i < nx ; i++) {
for (int j = 0 ; j < ny ; j++) {
fillKrigingVector(k, cov, indexi, indexj, i, j);
if (getResiduals) { // Only get the residuals
trend(i,j) = k * x;
}
else {
trend(i,j) += k * x;
}
}
}
}
}