Вы можете создать гауссову матрицу и наложить гексагональную / круглую маску, чтобы получить размер и форму нужного вам источника.Вы можете попробовать
%#initialize
N=1000;
x=repmat(linspace(-4,4,N),N,1);y=x';%'#this comment is to fix highlighting in Stackoverflow.
sigma=1;
%#compute a Gaussian matrix
gaussMatrix=exp( -x.^2/(2*sigma^2) - y.^2/(2*sigma^2));
%#create Hexagonal mask
xCenter=0;yCenter=0;%#center
radius=2;%#radius of the inscribed circle, i.e., distance from center to midpoint of side
hexMask=(abs(y-yCenter)<=radius) & ...
(abs(sqrt(3)/2*(x-xCenter)+1/2*(y-yCenter))<=radius) & ...
(abs(sqrt(3)/2*(x-xCenter)-1/2*(y-yCenter))<=radius);
figure, imshow(hexMask.*gaussMatrix)
%#create a circular mask
radius=2;
circMask=(abs(y-yCenter).^2+abs(x-xCenter).^2<=radius.^2);
figure, imshow(circMask.*gaussMatrix)
Гексагональный источник выглядит следующим образом ![Hexagonal source](https://i.stack.imgur.com/a3ufD.jpg)
, а круговой / дисковый источник выглядит следующим образом
![Circular source](https://i.stack.imgur.com/qvWU1.jpg)