# loop in function inside

2 views (last 30 days)
shiv gaur on 29 Jan 2022
Commented: shiv gaur on 29 Jan 2022
kk1 function kk1
clc;clear;close all;
l=633;
c = 1;
k0=2*pi/l;
ea=1.39;
da=1:300;
theta=1:70;
y=zeros(length(theta),length(da));
np=1.5;
x=(2*pi/l)*np*sind(theta);
function y=f(theta,da)
for i=1:length(theta)
iter = 0;
for j=1:length(da)
iter
ka=k0*sqrt(ea-x.^2);
f=(1-exp(2*1i.*da(j).*ka(i)))/(1+exp(2*1i.*da(j).*ka(i)));
%pfms=2*atan(1i*a.*b);
y(i,j)=2*atan(1i*c.*f);
% disp(y);
iter = iter + 1;
end
end
end
plot(da,y )
end
why this is not working how to make looping in function and find its derivative w r to da i.e df/dda with out syms and help to plot any one
Cris LaPierre on 29 Jan 2022
You never call (run) your function.

Voss on 29 Jan 2022
You must call the function f() somwhere. Your code defined f() but never used it; that's why there was an empty plot: y was not updated.
kk1(); % here I am calling your main function kk1
Warning: Imaginary parts of complex X and/or Y arguments ignored. function kk1
clc;clear;close all;
l=633;
c = 1;
k0=2*pi/l;
ea=1.39;
da=1:300;
theta=1:70;
% y=zeros(length(theta),length(da));
np=1.5;
x=(2*pi/l)*np*sind(theta);
y = f(theta,da); % here your main function kk1 is calling the nested function f
plot(da,y);
function y=f(theta,da)
y=zeros(length(theta),length(da));
for i=1:length(theta)
iter = 0;
for j=1:length(da)
% iter
ka=k0*sqrt(ea-x.^2);
f=(1-exp(2*1i.*da(j).*ka(i)))/(1+exp(2*1i.*da(j).*ka(i)));
%pfms=2*atan(1i*a.*b);
y(i,j)=2*atan(1i*c.*f);
% disp(y);
iter = iter + 1;
end
end
end
end
shiv gaur on 29 Jan 2022
pl plot between da vs dy/dda pl help

R2021b

### Community Treasure Hunt

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

Start Hunting!