To Remove Spaces In Between The Images And Assign Indices For Each Image

2 次查看(过去 30 天)
Hi,
I have written a Matlab coding to generate an array of holograms(4x4) as follows:
a=-1:2/127:+1;
b=-1:2/127:+1;
[X, Y]=meshgrid(a,b);
r=sqrt(X.^2+Y.^2)<1;
Z4=sqrt(3).*(2.*(X.^2+Y.^2)-1);
Z5=2.*sqrt(6).*X.*Y;
Z6=sqrt(6).*(X.^2-Y.^2);
Phi=(Z4+Z5+Z6);
mx=30;
my=25;
i=sqrt(-1);
Tau=mx.*X+my.*Y;
Theta=Phi+Tau;
if cos(Theta)>=0
t=1;
else
t=0;
end
t=(1/2)+(1/pi)*(exp(i*Theta)+exp(-i*Theta)-(1/3)*(exp(i*3*Theta)+(exp(-i*3*Theta)+(1/5)*(exp(i*5*Theta)+(exp(-i*5*Theta))))));
h=t.*r;
figure(1)
imagesc(h),colormap gray
xlabel('X-Cordinate');
ylabel('Y-Cordinate');
title('Binary Hologram');
b=fftshift(fft2(t,256,256));
figure(2)
imagesc(abs(b)),colormap gray
title('FFT Of Binary Hologram');
figure(3)
for k =1:16
p(i,j)=subplot(4,4,k);
imagesc(h),colormap gray;axis image;axis off
end
*****************
When you run the following program, in figure(3) you will find an array of holograms. My problem is that how can I remove the spaces in between the consecutive holograms so that one hologram just touches the other? Also how can I assign indices to each particular hologram in fig.(3), so that I can further modify any particular hologram according to my need?
Can anyone please help me out in this regard?
Thanking You!

采纳的回答

Margarita
Margarita 2012-8-9
编辑:Walter Roberson 2012-8-10
Hi Pranjal,
a simple solution is to make a matrix that contains 16 copies of your hologram in an arrangement of 4X4,then each location in this arrangement M(i,j) might have different holograms (h1, h2, h3... h16)
[a, b] = size(h);
M = zeros(size(h)*4); %M(4X4)
h1 = h; h2 = h; h3 = h; h4= h;
h5 = h; h6 = h; h7 = h; h8= h;
h9 = h; h10 = h; h11 = h; h12= h;
h13 = h; h14 = h; h15 = h; h16= h;
M(1:a, 1:b) = h1; %M(1, 1)
M(a+1:a*2, 1:b) = h2; %M(2, 1)
M(2*a+1:a*3, 1:b) = h3; %M(3, 1)
M(3*a+1:a*4, 1:b) = h4; %M(4, 1)
M(1:a, b+1:b*2) = h5; %M(1, 2)
M(a+1:a*2, b+1:b*2) = h6; %M(2, 2)
M(2*a+1:a*3, b+1:b*2) = h7; %M(3, 2)
M(3*a+1:a*4, b+1:b*2) = h8; %M(4, 2)
M(1:a, 2*b+1:b*3) = h9; %M(1, 3)
M(a+1:a*2, 2*b+1:b*3) = h10; %M(2, 3)
M(2*a+1:a*3, 2*b+1:b*3) = h11; %M(3, 3)
M(3*a+1:a*4, 2*b+1:b*3) = h12; %M(4, 3)
M(1:a, 3*b+1:b*4) = h13; %M(1, 4)
M(a+1:a*2, 3*b+1:b*4) = h14; %M(2, 4)
M(2*a+1:a*3, 3*b+1:b*4) = h15; %M(3, 4)
M(3*a+1:a*4, 3*b+1:b*4) = h16; %M(4, 4)
figure(4)
imagesc(M);
axis off

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Language Support 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by