# Is my code correct?

1 view (last 30 days)
Hind Aljallaf on 8 Dec 2022
Commented: Walter Roberson on 8 Dec 2022
Is my code correct?
Get the Fourier transform of image3 using the fft2() command.
If the result does not seem to be interesting, center the spectrum of the result using the fftshift() command.
A=fft2(img3)
X=fftshift(img3)
image3=abs(A)
plot(image3)
imshow(image3,[])
image32=abs(X)
plot(image32)
imshow(image32,[])

Walter Roberson on 8 Dec 2022
You should rarely plot an image. plot() is for creating line plots.
Your code will produce plots with one line for each column in A or X. It is not forbidden ... it just is seldom a good idea. Too difficult to make any sense out of the resulting plot.
Walter Roberson on 8 Dec 2022
Steven is indicating that he does not see a statement from you of what you are trying to achieve, and so cannot make a recommendation as to whether your code is acceptable or should be changed. And I replied that it looks to me as if your lines
Get the Fourier transform of image3 using the fft2() command.
If the result does not seem to be interesting, center the spectrum of the result using the fftshift() command.
are the statement of what you want to do.
I find your code a bit awkward but it looks like it would work.
Hint:
a = randi([-9 9], 1,5) + 1i*randi([-9 9],1,5);
mat2str(a)
ans = '[4+8i -4-8i -2+8i 7+3i -4-1i]'
out1 = fftshift(abs(a));
out2 = abs(fftshift(a));
mat2str(out1)
ans = '[7.61577310586391 4.12310562561766 8.94427190999916 8.94427190999916 8.24621125123532]'
mat2str(out2)
ans = '[7.61577310586391 4.12310562561766 8.94427190999916 8.94427190999916 8.24621125123532]'
out1 == out2
ans = 1×5 logical array
1 1 1 1 1