loop in function inside
1 次查看(过去 30 天)
显示 更早的评论
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
6 个评论
采纳的回答
Voss
2022-1-29
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
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!