Hi i want to know how i can vectorize my code so it be executed faster?

조회 수: 1 (최근 30일)
Dimitrios Gerontitis
Dimitrios Gerontitis 2018년 11월 11일
댓글: David Goodmanson 2018년 11월 12일
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
Guillaume
Guillaume 2018년 11월 11일
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
David Goodmanson 2018년 11월 12일
Hi Guillaume. Would you like to share your favorite color? No pressure.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by