Hi i want to know how i can vectorize my code so it be executed faster?
1 回表示 (過去 30 日間)
古いコメントを表示
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
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
2018 年 11 月 12 日
Hi Guillaume. Would you like to share your favorite color? No pressure.
回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!