1
function[Y] = busadmittance(z)
ne = z(:,1); nt = z(:,2); r = z(:,3); x = z(:,4); lines = length(ne);
buses = max(max(ne), max(nt));
Z = r + 1j*x;
y = ones(length(Z),1)./Z;
Y = zeros(buses,buses);
위의 코드를 따르는 'for'루프 아래에서 어떻게 벡터화 할 수 있습니까?Matlab에서 이러한 루프를 어떻게 벡터화 할 수 있습니까?
for k = 1:buses
for l = 1:lines
if ne(l) == k || nt(l) == k
Y(k,k) = Y(k,k)+ y(l);
end
end
end
for k = 1:lines
if ne(k)>0 && nt(k) > 0
Y(ne(k),nt(k)) = -y(k);
Y(nt(k),ne(k)) = -y(k);
end
end
사전 할당 및 벡터화 외에 성능에 큰 영향을 줄 수있는 추가 코드 향상 기능이 있습니까? GPU (클러스터 잊어)