⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vebyk.m

📁 本文件夹中包含了克立格插值
💻 M
字号:
function [output,errorvariance] = vebyk(coord,dgrid,points,anisotropy,alpha,nu,range,crossv,verbose)% Value Estimation BY Kriging:% estimates values on a grid using ordinary kriging.% % Parameters are ment as following:% 'coord' = [x1 y1 value1;x2 y2 value2...]% 'grid' = [xi yi] distances between two points on the interpolated grid% 'points' is the number of points used for interpolation% 'anisotropy' = (range x) / (range y)% 'alpha' angle between axis and anisotropy in degrees% 'nu' for the von karman covariance function.% 'range' of the covariance function% 'crossv' = 1 for crossvalidation; for normal operating set 'crossv' = 0% 'verbose' = 1 for waitbar; = 0 without waitbar%% usage:    [output,errorvariance] = vebyk(coord,dgrid,points,anisotropy,alpha,nu,range,crossv,verbose)% 12.6.2003 Rolf Sidler V 1.0% calculating grid coordinatesmaximum = max(coord);minimum = min(coord);ix = abs(round((maximum(1)-minimum(1))/dgrid(1)))+1;iy = abs(round((maximum(2)-minimum(2))/dgrid(2)))+1;grid = inputmatrix(ones(iy,ix),dgrid(1),dgrid(2));grid(:,1) = grid(:,1) + minimum(1);grid(:,2) = grid(:,2) + minimum(2);% changing coordinate system for anisotropy on an angle different from 0alpha = (2*pi)/360 * alpha;coord = rotation(coord,alpha);grid = rotation(grid,alpha);grid = grid(:,1:2);newgrid = zeros(length(grid),3);errorvariance = zeros(length(grid),3);errorvariance(:,1:2) = grid(:,1:2);newgrid(:,1:2) = grid(:,1:2);% waitbarif verbose    h = waitbar(0,'interpolating, please wait');endfor i = 1:length(grid)    % waitbar    if verbose        waitbar(i/length(grid),h)    end    % calculating the lags of the 'points' next points    % (change to 'neighborhood2' to use points out of all four quadrants)    % (change to 'neighborhood' to use simple search neighborhood)    [values,position] = neighborhood(grid(i,1),grid(i,2),coord,points,crossv,anisotropy);    % kriging    [lambda,errorvariance(i,3)] = kriging3(position,anisotropy,nu,range);    % calculating the interpolatet value    newgrid(i,3) = sum(lambda(1:end-1) .* values');end% waitbarif verbose    close(h)end% changing coordinates backoutput = rotation(newgrid,(-alpha));errorvariance = rotation(errorvariance,(-alpha));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -