Master-Project/Simulink/polydome_matlab_gp/gpCallback.m
2021-06-02 12:22:27 +02:00

39 lines
No EOL
890 B
Matlab

classdef gpCallback < casadi.Callback
properties
model
end
methods
function self = gpCallback(name)
self@casadi.Callback();
construct(self, name, struct('enable_fd', true));
end
% Number of inputs and outputs
function v=get_n_in(self)
v=1;
end
function v=get_n_out(self)
v=1;
end
% Function sparsity
function v=get_sparsity_in(self, i)
v=casadi.Sparsity.dense(7, 1);
end
% Initialize the object
function init(self)
disp('initializing gpCallback')
gpr = load('gpr_model.mat', 'model');
self.model = gpr.model;
end
% Evaluate numerically
function arg = eval(self, arg)
x = full(arg{1});
% Transpose x since gp predictor takes row by row, and casadi gives
% colum by column
[mean, ~] = predict(self.model, x');
arg = {mean};
end
end
end