2011-03-28 7 views
1

Je suis débutant au matlab. J'ai un exemple de code. Je veux comprendre ce qui se passe avec l'extrait de code.matlab: décomposition de la matrice clairsemée

Sample.m

n=60;%Number of division of length 
m=84;%Number of division of time 
N=2*m*n+m+n; 
A=spalloc(N,N,4*N); 
// A is a Matrix 
for j=1:m 
if(massdot(j)>=0) 
i=1:n; 
A(((n+1)*(j-1)+i+1-1)*N+(n+1)*(j-1)+i+1)=Nuf(:,j).*kfn(:,j)*as*Ac./((1+Bi(:,j)/5)* (2*Dh))+n*massdot(j)*cfn(:,j)/L; 
A(((n+1)*(j-1)+i-1+1-1)*N+(n+1)*(j-1)+i+1)=Nuf(:,j).*kfn(:,j)*as*Ac./((1+Bi(:,j)/5)*(2*Dh))-n*massdot(j)*cfn(:,j)/L; 
A(((n+1)*m+n*j+i-1)*N+(n+1)*(j-1)+i+1)=-Nuf(:,j).*kfn(:,j)*as*Ac./((1+Bi(:,j)/5)*(2*Dh)); 
A(((n+1)*m+n*(j-1)+i-1)*N+(n+1)*(j-1)+i+1)=-Nuf(:,j).*kfn(:,j)*as*Ac./((1+Bi(:,j)/5)*(2*Dh)); 
B((n+1)*(j-1)+i+1,1)=abs(ff(:,j).*massdot(j)^3/(2*pf^2*Ac^2*Dh)); %Viscous dissipation 
i=0; 
A((n+1)*(j-1)+i+1,(n+1)*(j-1)+i+1)=1; 
B((n+1)*(j-1)+i+1,1)=TH; 
... 
X=A\B; 
for j=1:m 
i=0:n; 
Tf(:,j)=full(X((n+1)*(j-1)+i+1)); 
... 

-moi expliquer, ce qui se produit avec des lignes 9, 10, 11 & 12. en particulier l'expression côté gauche à =. qui est à l'intérieur du ().

Édition:

Code mis à jour. J'essaie de trouver Tf Matrix. Je ne peux pas partager le code entier, puisqu'il s'agit du code de mon projet confidentiel.

Répondre

0

Fondamentalement, vous définissez la valeur de n éléments de A à quelque chose. L'index (ce long calcul entre accolades) à A est un vecteur, car dans son calcul, vous utilisez i, qui est un vecteur de tous les éléments de 1 à n.

Il est difficile de dire plus sans avoir des informations de base sur ce que le code est censé faire.

+0

question mise à jour! –

Questions connexes