Unrecognized function or variable 'delta1'.
Mostrar comentarios más antiguos
Hello! Whenever I run the following code, the error Unrecognized function or variable 'delta1' appears. Anyone who can help me I would be very grateful.
clear all;
clc;
%ccd to sorce = 17 cm
% ccd to object = 2 cm
% object to source = 15 cm
% size of image pixel and dimension
N = 423;%input ('Size Pixel NxN pixel=');
% M = 736;
L = N*7.00e-6/2;
%wavelength
wvl = 0.650e-6;
k = 2*pi/wvl;
%Dz = 0.03;
awal = 0; %input ('initial position (m) = ');
batas = 0.025; % input ('batas jarak rekontruksi (m) dari 0 ~ ');
%---------------Loop to create images
step = 0.0005;%input ('step size (m) = ');
for Dz=awal:+step:batas
[x1, y1]=meshgrid((-N/2:N/2-1)*delta1);
%Reconst(:,:,c)=dum(floor(hol_size(1)/2)+1:3*floor(hol_size(1)/2),floor(hol_size(2)/2)+1:3*floor(hol_size(2)/2));
[data] = imread('jojo.jpg');
datared = data (1:N,1:N, 1);
%imshow(datared);
%array refrence wave
m1=one(sixe(x1));
kx = k*x1/Dz;
ky = k*y1/Dz;
%dataf = double(datared)-mean2(double(datared));
%dataf = double(max(max(datared)))-double(datared);
%dataf = exp (-1i*k*Dz*double(datared));%-mean2(datared);
%dataf = exp (-2*pi*1i.*(kx+ky).*double(datared));
dataf = double(datared);
r=sqrt(0.17^2*m1 + x1.*xq+y1.*y1);
%Uref = exp (1i*2*pi)./r;
%Uref = 2*pi/wvl;
%lensa = exp
lensa = exp(-1i*k*Dz-(1i*k* (x1.*x1+ y1.*y1)/1i*k*Dz)); % (2*0.02));
filter = exp(-2*pi*1i.*(kx*0.02+ky*0.02));
%datai= dataf. *Uref;
datai = dataf; %.*filter;
[Uot] = fresnel3 (datai, L, wvl, Dz);
reall = Uout.*Uout;
imaginary = imag (Uout.*Uout);
%datao = imag (Uout);
%datao = real (reall) + imaginary;
%datao = atan (imag (Uout)./real (Uout));
datao = abs (Uout).*abs (Uout);
%datao= real (Uout. *Uout) +imag (Uout. *Uout);
%imshow (uint8 (200*datao/max (max (datao))));
imagesc ((uint8 (200*datao/max (max (datao))))), colormap (gray); axis equal; axis tight; ylabel('pixels');
xlabel(['Nilai Dz =',num2str(Dz),'m']);
title(' Image reconstructed by Fresnell Transform ')
%imwrite (uint8 (200*datao/max (max (datao))), sprintf( 'benang_%02d.jpg', Dz));
imwrite (uint8 (200*datao/max (max (datao))), sprintf( 'ini_real_%02d.jpg', Dz ));
disp('Press any key to continue... ');
pause;
end
function [u2] = fresnel (u1, L, lambda, ~)
[M,~] = size (u1);
dx = L/M;
k = 2*pi/lambda;
fx = -1/(2*dx): 1/L:1/(2* dx)-1/L;
[FX, FY] = meshgrid(fx, fx);
H = exp(-i*pi* lambda*z* (FX.^2 + FY.^2));
H = fftshift (H);
U1 = fft2(fftshift (u1));
U2 = H.*U1;
u2 = ifftshift (ifft2 (U2));
end
Respuesta aceptada
Más respuestas (1)
Bhanu Prakash
el 15 de Mzo. de 2023
Editada: Bhanu Prakash
el 15 de Mzo. de 2023
Hi Mia,
As per my understanding, you are facing an error while running your code.
The reason is that “MATLAB” does not recognize the specified term “delta1” as the name of a function on the “MATLAB” path or as a variable.
This error usually occurs when the variable/function has not been defined before the execution reaches it’s instance.
Please look at the code below, for your reference:
>> a=1;
>> b=2;
>> d=a+b+c;
Unrecognized function or variable 'c'.
In the above code, “c” is not declared but it is used to compute “d”. This throws an error.
This error can be avoided by defining “c” before computing “d”:
>> a=1;
>> b=2;
>> c=3;
>> d=a+b+c
d =
6
See this documentation for more tips:
Hope this answer helps you.
Thanks,
Bhanu Prakash.
1 comentario
Mia Chan
el 16 de Mzo. de 2023
Categorías
Más información sobre Images en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!