Matlab: разреженная матричная декомпозиция

Я новичок в матлабе. У меня есть пример кода. Я хочу понять, что происходит с фрагментом кода.

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));
...

Просто объясните мне, что происходит со строками 9, 10, 11 и 12. особенно выражение слева от =. который находится внутри ( ).

Редактировать:

Обновленный код. пытаюсь найти Tf матрицу. Я не могу поделиться всем кодом, так как это мой конфиденциальный код проекта.


person Mohamed Saligh    schedule 28.03.2011    source источник


Ответы (1)


По сути, вы устанавливаете значение n элементов A на что-то. Индекс (это длинное вычисление между фигурными скобками) для A является вектором, потому что в его вычислении вы используете i, который является вектором всех элементов от 1 до n.

Трудно сказать больше, не имея некоторой исходной информации о том, что должен делать код.

person AVH    schedule 28.03.2011