www.gusucode.com > graphics 案例源码程序 matlab代码 > graphics/SmoothAMatrixForContourPlotExample.m
%% Smooth Data with Convolution % This example shows how to use convolution to smooth 2-D data that % contains high-frequency components. %% % Create 2-D data using the |peaks| function, and plot % the data at various contour levels. Z = peaks(100); levels = -7:1:10; contour(Z,levels) %% % Inject random noise into the data and plot the noisy contours. Znoise = Z + rand(100) - 0.5; contour(Znoise,levels) %% % The <docid:matlab_ref.f80-999541> function in MATLAB(R) convolves 2-D % data with a specified kernel whose elements define how to remove or % enhance features of the original data. Kernels do not have to be the same % size as the input data. Small-sized kernels can be sufficient to smooth % data containing only a few frequency components. Larger sized kernels can % provide more precision for tuning frequency response, resulting in % smoother output. %% % Define a 3-by-3 kernel |K| and use |conv2| to smooth the noisy data in % |Znoise|. Plot the smoothed contours. The |'same'| option in |conv2| % makes the output the same size as the input. K = 0.125*ones(3); Zsmooth1 = conv2(Znoise,K,'same'); contour(Zsmooth1, levels) %% % Smooth the noisy data with a 5-by-5 kernel, and plot the new countours. K = 0.045*ones(5); Zsmooth2 = conv2(Znoise,K,'same'); contour(Zsmooth2,levels)