regressionihdrt.m

来自「一种快速的多叉搜索树」· M 代码 · 共 38 行

M
38
字号
function [ret, Yout] = regressionIHDRT(tid, X, varargin)
% Retrieve a couple (Xout, Yout) from an IHDR tid tree based on X.
% [ret, Xout, Yout, dist] = regressionIHDRT(tid, X) 
%
% OUTPUT:  
% ret   - 0: success, other: fail 
% Yout  - retrieved Y
% INPUTS:
% tid   - The tree's handler
% X     - X vector
% knn   - Size of neighborhood
if ~libisloaded('IHDRDLL')
    loadlibrary('IHDRDLL', 'IHDRDLL.h');
end

knn = 10;
lambda = 0.01;

args = varargin;
nargs = length(args);
for i=1:2:nargs
  switch args{i}
   case 'knn', knn = args{i+1};
   case 'lambda', lambda = args{i+1};
   otherwise, error(['unrecognized argument ' args{i}])
  end
end

sX = calllib('IHDRDLL','GetXdim', tid);
sY = calllib('IHDRDLL','GetYdim', tid);

Yout = zeros(sY,1);
pX = libpointer('doublePtr', X);
pYout = libpointer('doublePtr', Yout);

ret = calllib('IHDRDLL','Regression', tid, pX, sX, pYout, sY, knn, lambda);
Yout = get(pYout,'Value');

⌨️ 快捷键说明

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