MATLAB’s GPR module provides an option for passing a custom kernel through function handle. A function handle that can be called like this: Kmn = kfcn(Xm,Xn,theta)
where Xm is an m-by-d matrix, Xn is an n-by-d matrix and Kmn is an m-by-n matrix of kernel products such that Kmn(i,j) is the kernel product between Xm(i,:) and Xn(j,:). theta is the r-by-1 unconstrained parameter vector for kfcn.
For a dot product kernel theta is not required. Hence “kfcn” can be simply implemented as Xm * Xn’. I have attached the screenshot of relevant portion from the documentation. Please see documentation of GPR for more details.