36 lines
1.1 KiB
Matlab
36 lines
1.1 KiB
Matlab
function plotContour(fun, x_lim, y_lim, size, plot_title, filename)
|
|
% plot the contour of a function
|
|
% fun: The function to plot
|
|
% x_lim: The range for x axis. ex: [-2, 2]
|
|
% y_lim: The range for y axis. ex: [0, 2]
|
|
% size: The number of points for each axis
|
|
% plot_title: The latex title for the plot
|
|
%
|
|
|
|
global image_width,
|
|
global image_height;
|
|
|
|
% Generate a grid for x and y
|
|
x_space = linspace(x_lim(1), x_lim(2), size);
|
|
y_space = linspace(y_lim(1), y_lim(2), size);
|
|
[X, Y] = meshgrid(x_space, y_space);
|
|
|
|
% Evaluate the function on the grid
|
|
Z = fun(X, Y);
|
|
|
|
% Contour
|
|
figure('Name', 'Contours of f(x,y)', 'NumberTitle', 'off');
|
|
set(gcf, 'Position', [100, 100, image_width, image_height]); % Set the figure size
|
|
contour(X, Y, Z);
|
|
|
|
% Customize the plot
|
|
xlabel('x'); % Label for x-axis
|
|
ylabel('y'); % Label for y-axis
|
|
title(plot_title, 'Interpreter', 'latex', 'FontSize', 16); % Title of the plot
|
|
colorbar;
|
|
|
|
% save the figure
|
|
if strcmp(filename, '') == 0
|
|
print(gcf, filename, '-dpng', '-r300');
|
|
end
|
|
end |