Filter löschen
Filter löschen

Nodal admittance matrix using for loop and if statement

1 Ansicht (letzte 30 Tage)
yu yue
yu yue am 16 Okt. 2016
Kommentiert: Andrei Bobrov am 16 Okt. 2016
I want to ask how can I get the matrix Y if I have the value of y1, y12, y13, y23,...,etc.
I have coding as below, but it dose not work. Who can help me?
B_matrix =[0 2.5000 0 1.6667 5.0000 0; -2.5000 0 5.0000 2.5000 0 0;0 -5.0000 0 0 5.0000 0; -1.6667 -2.5000 0 0 0 0; -5.0000 0 -5.0000 0 0 0; 0 0 0 0 0 0]
Y=zeros(6,6);
for m=1:6
for n=1:6
if m==n
for (k=1:6) & (k ~ = m)
Y(m,n)=B_matrix(m,n)+B_matrix(m,k);
else
Y(m,n)=-B_matrix(m,n);
end
end
end
end
Y

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 16 Okt. 2016
Y = diag(sum(B_matrix,2)) - (~eye(size(B_matrix))).*B_matrix;
  2 Kommentare
yu yue
yu yue am 16 Okt. 2016
hi, it seems not right. Y(2,1)=-2.5; Y(2,2)=10; Y(3,2)=-5; Y(3,3)=10; Y(4,1) =-1.67, Y(4,2)= -2.5; Y(4,4)=4.17; Y(5,1)=-5; Y(5,3)=-5; Y(5,5)=10;
Andrei Bobrov
Andrei Bobrov am 16 Okt. 2016
aB = abs(B_matrix);
Y = diag(sum(aB,2)) - (~eye(size(B_matrix))).*aB;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by