matlab: разреженная матричная декомпозиция - PullRequest
1 голос
/ 28 марта 2011

Я новичок в 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. особенно выражение слева от = который находится внутри ( ).

Edit:

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

1 Ответ

0 голосов
/ 28 марта 2011

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

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

...