Hi i want to know how i can vectorize my code so it be executed faster?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Dimitrios Gerontitis
el 11 de Nov. de 2018
Comentada: David Goodmanson
el 12 de Nov. de 2018
function out=A(lam,N,P,n,k,w,L,d,th_i,ai,si,fi,gi)
w=2*pi./lam.*w; k=2*pi./lam.*k;
L=2*pi./lam.*L; d=2*pi./lam.*d;
M=length(ai);
n0=n(1); n1=n(2); n2=n(3); n3=n(4);
g0=sqrt(((cos(th_i))+(2.*pi/L.*(-P:P))).^2-n0^2);
g1=sqrt(((cos(th_i))+(2.*pi/L.*(-P:P))).^2-n1^2);
g2=sqrt(((cos(th_i))+(2.*pi/L.*(-P:P))).^2-n2^2);
g3=sqrt(((cos(th_i))+(2.*pi/L.*(-N:N))).^2-n3^2);
% g_i=k_0*g_i
Jmax=max(2*N,N+P);
J=-Jmax:Jmax;
J(Jmax+1)=1;
if M==1
J1=1./(j*2*pi.*J).*exp(j*2*pi.*J.*ai).*(exp(j*2*pi.*J.*si)-1);
else
J1=1./(j*2*pi.*J).*sum(exp(j*2*pi.*ai'*J).*(exp(j*2*pi.*(si'*J))-1));
end
J1(Jmax+1)=sum(si);
% Matrix J1mn is matrix J1_m-n with rows constant m, columns constant n
J1mn=-N:N;
J1mn=J1mn(ones(2*N+1,1),:);
J1mn=J1mn.'-J1mn;
J1mn=J1(J1mn+Jmax+1);
J1mn=[J1mn J1mn;J1mn J1mn];
% Matrix P1mn containing dependance from discontinuities versus x
P1=g3(ones(2*N+1,1),:);
P1=[P1.'+P1 P1.'-P1; -P1.'+P1 -P1.'-P1];
for m=1:2*N+1
for n=1:2*N+1
I1mn_mat=I1mn(P1(m,n),N,w,k,L,d,ai,si,fi,gi);
P1mn(m,n)=(exp(P1(m,n).*(d-k)).*J1mn(m,n)-I1mn_mat(m,n))./P1(m,n);
I1mn_mat=I1mn(P1(m+2*N+1,n+2*N+1),N,w,k,L,d,ai,si,fi,gi);
P1mn(m+2*N+1,n+2*N+1)=(exp(P1(m+2*N+1,n+2*N+1).*(d-k)).*J1mn(m+2*N+1,n+2*N+1)-I1mn_mat(m,n))./P1(m+2*N+1,n+2*N+1);
if (m~=n)
I1mn_mat=I1mn(P1(m,n+2*N+1),N,w,k,L,d,ai,si,fi,gi);
P1mn(m,n+2*N+1)=(exp(P1(m,n+2*N+1).*(d-k)).*J1mn(m,n+2*N+1)-I1mn_mat(m,n))./P1(m,n+2*N+1);
I1mn_mat=I1mn(P1(m+2*N+1,n),N,w,k,L,d,ai,si,fi,gi);
P1mn(m+2*N+1,n)=(exp(P1(m+2*N+1,n).*(d-k)).*J1mn(m+2*N+1,n)-I1mn_mat(m,n))./P1(m+2*N+1,n);
end
if (m==n)
I0mn_mat=I0mn(N,w,k,L,d,ai,si,fi,gi);
P1mn(m,m+2*N+1)=(d-k)*J1mn(m,m+2*N+1)-I0mn_mat(m,m);
P1mn(m+2*N+1,m)=(d-k)*J1mn(m+2*N+1,m)-I0mn_mat(m,m);
end
end
end
J11mp=J1mp(N,P,ai,si);
J11pn=J1pn(N,P,ai,si);
for m=-N:N
for n=-N:N
for p=-P:P
g0p=g0(p+P+1); g1p=g1(p+P+1); g2p=g2(p+P+1); g3m=g3(m+N+1); g3n=g3(n+N+1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%m+n+
I1mp_pp=I1mp(+g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_pm=I1mp(+g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R1pp(m+N+1,n+N+1,p+P+1)=((PE(g2p,g1p,2*d)+PO(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3m-g1p)*(exp((+g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pp(m+N+1,p+P+1))+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3m+g1p)*(exp((+g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pm(m+N+1,p+P+1));
R2pp(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3n-g1p)*(exp((+g3n+g1p).*(d-k))*J11pn(p+P+1,n+N+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3n+g1p)*(exp((+g3n-g1p).*(d-k))*J11pn(p+P+1,n+N+1));
I1mp_pp=I1mp(+g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_pm=I1mp(+g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R3pp(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3m-g1p)*(exp((+g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pp(m+N+1,p+P+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3m+g1p)*(exp((+g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pm(m+N+1,p+P+1));
I1pn_pp=I1pn(+g3n+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1pn_pm=I1pn(+g3n-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R4pp(m+N+1,n+N+1,p+P+1)=((PO(g2p,g1p,2*d)+PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3n-g1p)*I1pn_pp(p+P+1,n+N+1)+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3n+g1p)*I1pn_pm(p+P+1,n+N+1);
Rpp(m+N+1,n+N+1,p+P+1)=(R1pp(m+N+1,n+N+1,p+P+1)*R2pp(m+N+1,n+N+1,p+P+1)-...
R3pp(m+N+1,n+N+1,p+P+1)*R4pp(m+N+1,n+N+1,p+P+1))*...
PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)*PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)...
/(8*g1p*OE(g0p,g2p,g1p,2*d)*(g3m.^2-g1p^2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%m+n-
I1mp_pp=I1mp(+g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_pm=I1mp(+g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R1pm(m+N+1,n+N+1,p+P+1)=((PE(g2p,g1p,2*d)+PO(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3m-g1p)*(exp((+g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pp(m+N+1,p+P+1))+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3m+g1p)*(exp((+g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pm(m+N+1,p+P+1));
R2pm(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3n-g1p)*(exp((-g3n+g1p).*(d-k))*J11pn(p+P+1,n+N+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3n+g1p)*(exp((-g3n-g1p).*(d-k))*J11pn(p+P+1,n+N+1));
I1mp_pp=I1mp(+g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_pm=I1mp(+g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R3pm(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3m-g1p)*(exp((+g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pp(m+N+1,p+P+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3m+g1p)*(exp((+g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pm(m+N+1,p+P+1));
I1pn_mp=I1pn(-g3n+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1pn_mm=I1pn(-g3n-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R4pm(m+N+1,n+N+1,p+P+1)=((PO(g2p,g1p,2*d)+PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3n-g1p)*I1pn_mp(p+P+1,n+N+1)+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3n+g1p)*I1pn_mm(p+P+1,n+N+1);
Rpm(m+N+1,n+N+1,p+P+1)=(R1pm(m+N+1,n+N+1,p+P+1)*R2pm(m+N+1,n+N+1,p+P+1)-...
R3pm(m+N+1,n+N+1,p+P+1)*R4pm(m+N+1,n+N+1,p+P+1))*...
PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)*PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)...
/(8*g1p*OE(g0p,g2p,g1p,2*d)*(g3m.^2-g1p^2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%m-n+
I1mp_mp=I1mp(-g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_mm=I1mp(-g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R1mp(m+N+1,n+N+1,p+P+1)=((PE(g2p,g1p,2*d)+PO(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3m-g1p)*(exp((-g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mp(m+N+1,p+P+1))+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3m+g1p)*(exp((-g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mm(m+N+1,p+P+1));
R2mp(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3n-g1p)*(exp((+g3n+g1p).*(d-k))*J11pn(p+P+1,n+N+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(+g3n+g1p)*(exp((+g3n-g1p).*(d-k))*J11pn(p+P+1,n+N+1));
I1mp_mp=I1mp(-g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_mm=I1mp(-g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R3mp(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3m-g1p)*(exp((-g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mp(m+N+1,p+P+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3m+g1p)*(exp((-g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mm(m+N+1,p+P+1));
I1pn_pp=I1pn(+g3n+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1pn_pm=I1pn(+g3n-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R4mp(m+N+1,n+N+1,p+P+1)=((PO(g2p,g1p,2*d)+PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3n-g1p)*I1pn_pp(p+P+1,n+N+1)+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(+g3n+g1p)*I1pn_pm(p+P+1,n+N+1);
Rmp(m+N+1,n+N+1,p+P+1)=(R1mp(m+N+1,n+N+1,p+P+1)*R2mp(m+N+1,n+N+1,p+P+1)-...
R3mp(m+N+1,n+N+1,p+P+1)*R4mp(m+N+1,n+N+1,p+P+1))*...
PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)*PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)...
/(8*g1p*OE(g0p,g2p,g1p,2*d)*(g3m.^2-g1p^2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%m-n-
I1mp_mp=I1mp(-g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_mm=I1mp(-g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R1mm(m+N+1,n+N+1,p+P+1)=((PE(g2p,g1p,2*d)+PO(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3m-g1p)*(exp((-g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mp(m+N+1,p+P+1))+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3m+g1p)*(exp((-g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mm(m+N+1,p+P+1));
R2mm(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3n-g1p)*(exp((-g3n+g1p).*(d-k))*J11pn(p+P+1,n+N+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3n+g1p)*(exp((-g3n-g1p).*(d-k))*J11pn(p+P+1,n+N+1));
I1mp_mp=I1mp(-g3m+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1mp_mm=I1mp(-g3m-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R3mm(m+N+1,n+N+1,p+P+1)=((PO(g0p,g1p,2*d)-PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3m-g1p)*(exp((-g3m+g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mp(m+N+1,p+P+1))+...
((PO(g0p,g1p,2*d)+PE(g0p,g1p,2*d))/(PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)))*(-g3m+g1p)*(exp((-g3m-g1p).*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mm(m+N+1,p+P+1));
I1pn_mp=I1pn(-g3n+g1p,N,P,w,k,L,d,ai,si,fi,gi);
I1pn_mm=I1pn(-g3n-g1p,N,P,w,k,L,d,ai,si,fi,gi);
R4mm(m+N+1,n+N+1,p+P+1)=((PO(g2p,g1p,2*d)+PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3n-g1p)*I1pn_mp(p+P+1,n+N+1)+...
((PO(g2p,g1p,2*d)-PE(g2p,g1p,2*d))/(PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)))*(-g3n+g1p)*I1pn_mm(p+P+1,n+N+1);
Rmm(m+N+1,n+N+1,p+P+1)=(R1mm(m+N+1,n+N+1,p+P+1)*R2mm(m+N+1,n+N+1,p+P+1)-...
R3mm(m+N+1,n+N+1,p+P+1)*R4mm(m+N+1,n+N+1,p+P+1))*...
PE(g2p,g1p,2*d)*PO(g2p,g1p,2*d)*PE(g0p,g1p,2*d)*PO(g0p,g1p,2*d)...
/(8*g1p*OE(g0p,g2p,g1p,2*d)*(g3m.^2-g1p^2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rpp1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*Rpp(m+N+1,n+N+1,p+P+1);
Rpm1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*Rpm(m+N+1,n+N+1,p+P+1);
Rmp1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*Rmp(m+N+1,n+N+1,p+P+1);
Rmm1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*Rmm(m+N+1,n+N+1,p+P+1);
R1=[Rpp1, Rpm1; Rmp1, Rmm1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I1mp_pp=I1mp(+g3m+g3n,N,P,w,k,L,d,ai,si,fi,gi);
Ppp(m+N+1,n+N+1,p+P+1)=(exp((+g3m+g3n)*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pp(m+N+1,p+P+1))/(+g3m+g3n);
I1mp_mm=I1mp(-g3m-g3n,N,P,w,k,L,d,ai,si,fi,gi);
Pmm(m+N+1,n+N+1,p+P+1)=(exp((-g3m-g3n)*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mm(m+N+1,p+P+1))/(-g3m-g3n);
if (m~=n)
I1mp_pm=I1mp(+g3m-g3n,N,P,w,k,L,d,ai,si,fi,gi);
Ppm(m+N+1,n+N+1,p+P+1)=(exp((+g3m-g3n)*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_pm(m+N+1,p+P+1))/(+g3m-g3n);
I1mp_mp=I1mp(-g3m+g3n,N,P,w,k,L,d,ai,si,fi,gi);
Pmp(m+N+1,n+N+1,p+P+1)=(exp((-g3m+g3n)*(d-k))*J11mp(m+N+1,p+P+1)-I1mp_mp(m+N+1,p+P+1))/(-g3m+g3n);
end
if (m==n)
I0mp1=I0mp(N,P,w,k,L,d,ai,si,fi,gi);
Ppm(m+N+1,n+N+1,p+P+1)=(d-k)*J11mp(m+N+1,p+P+1)-I0mp1(m+N+1,p+P+1);
Pmp(m+N+1,n+N+1,p+P+1)=(d-k)*J11mp(m+N+1,p+P+1)-I0mp1(m+N+1,p+P+1);
end
Ppp1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*J11pn(p+P+1,n+N+1)*Ppp(m+N+1,n+N+1,p+P+1);
Ppm1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*J11pn(p+P+1,n+N+1)*Ppm(m+N+1,n+N+1,p+P+1);
Pmp1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*J11pn(p+P+1,n+N+1)*Pmp(m+N+1,n+N+1,p+P+1);
Pmm1(m+N+1,n+N+1,p+P+1)=(n3^2-n1^2)/(g3n^2-g1p^2)*J11pn(p+P+1,n+N+1)*Pmm(m+N+1,n+N+1,p+P+1);
P1=[Ppp1, Ppm1; Pmp1, Pmm1];
end
end
end
PR1=sum(-P1+R1,3);
out=-P1mn+PR1;
end
function out=PE(f,g,d)
out=(f.*cosh(g.*d./2))+(g.*sinh(g.*d./2));
end
function out=PO(f,g,d)
out=(g.*cosh(g.*d./2))+(f.*sinh(g.*d./2));
end
function out=OE(e,f,g,d)
out=(PE(e,g,d)*PO(f,g,d)+PO(e,g,d)*PE(f,g,d))/2;
end
2 comentarios
Guillaume
el 11 de Nov. de 2018
I seriously doubt anyone will bother trying to understand your code unless forced to. For a start, there's not a single comment explaining what it does. A good way to write a function is to first document it: what it does, how it does it, what are the inputs and outputs, what are the restrictions on these inputs (size, type, etc.). Something like:
function velocity = bridgeofdoom(swallowtype, airdensity)
%BRIDGEOFDOOM: calculate the air speed velocity of an unladen swallow
%Takes into account the type of swallow and the air density to calculate the velocity
%inputs:
% swallowtype: the type of swallow. Scalar string or char array. Can either be 'european' or 'african'
% airdensity: the air density in kg/m3. Positive numeric scalar
%outputs:
% velocity: air speed velocity of the bird in m/s. Numeric scalar.
David Goodmanson
el 12 de Nov. de 2018
Hi Guillaume. Would you like to share your favorite color? No pressure.
Respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!