📄 kernel.m
字号:
function H = kernel(ker,x1,x2,par)
%
%------------S200502016 郑黎方-------------------------------
%计算内积函数矩阵.
% H = kernel(ker,x1,x2,par)
% 输入参数:
%
% ker: 内积函数形式.
% 'linear' - 线形
% 'poly_h' - 齐次多项式内积. par 是多项式的次数.
% 'poly_i' - 非齐次多项式内积. par 是多项式的次数.
% 'rbf' - 径向基函数内积. par是径向基的宽度(dert^2).
%
% x1: 输入矩阵,每行表示一个多维向量.
% x2: 输入矩阵,每行表示一个多维向量.
% par: 内积函数参数.
% 输出:
%
% H: 内积函数矩阵。
%
%
%
if (nargin < 3) % 核查输入参数的个数
help kernel
else
switch lower(ker)
case 'linear'
H = x1*x2';
case 'poly_h'
H = (x1*x2').^par;
case 'poly_i'
H = (x1*x2' +1).^par;
case 'rbf'
if(size(x1,2)==1)
N1=size(x1,1);
N2=size(x2,1);
H = zeros(N1,N2);
for i=1:N1
H(i,:) = (exp(-(x2-ones(N2,1)*x1(i,:))'.*(x2-ones(N2,1)*x1(i,:))'/(2*par^2)));
end
else
N1=size(x1,1);
N2=size(x2,1);
H = zeros(N1,N2);
for i=1:N1
H(i,:) = exp(-sum((x2-ones(N2,1)*x1(i,:))'.*(x2-ones(N2,1)*x1(i,:))')/(2*par^2));
end
end
otherwise
H = x1*x2';
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -