📄 plot_ggkld.m
字号:
% Plot the function of KLD between GGDs
rrange = [-2, 2];
brange = [0.5, 1.5];
logratio = linspace(rrange(1), rrange(2), 25); % log(\alpha1 / \alpha2)
beta = linspace(brange(1), brange(2), 25);
% \beta1 = \beta2 = \beta i.e.\beta固定
figure(1);
[R, B] = meshgrid(logratio * log(2), beta);
D1 = -R + exp(R .* B) ./ B - 1 ./ B;
mesh(logratio, beta, D1);
axis([rrange(1), rrange(2), brange(1), brange(2), 0, 8]);
xlabel('log_2(\alpha_1 / \alpha_2)', 'FontSize', 12);
ylabel('\beta', 'FontSize', 12)
zlabel('D(p(.; \alpha_1, \beta) || p(.; \alpha_2, \beta))', 'FontSize', 12);
figure(2);
% \alpha1 = \alpha2 = \alpha
[B1, B2] = meshgrid(beta, beta);%transforms the domain specified by vectors beta and beta into arrays B1 and B2,
% which can be used to evaluate functions of two variables and three-dimensional mesh/surface plots.
%The rows of the output array B1 are copies of the vector beta; columns of the output array B2 are copies of the vector beta.
%such as [X,Y] = meshgrid(1:3,10:11)
D2 = log(B1 ./ B2) + gammaln(1./B2) - gammaln(1./B1) + ...
gamma((B2 + 1) ./ B1) ./ gamma(1 ./ B1) - 1 ./ B1;
mesh(beta, beta, D2);
axis([brange(1), brange(2), brange(1), brange(2), 0, 8]);
xlabel('\beta_1', 'FontSize', 12);
ylabel('\beta_2', 'FontSize', 12);
zlabel('D(p(.; \alpha, \beta_1) || p(.; \alpha, \beta_2))', 'FontSize', 12);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -