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 Center および File ExchangeMATLAB についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by