Buenos días, tengo una pequeña aplicación en Matlab que compara dos vectores de números complejos (que corresponden a dos funciones de transferencia) y me da el punto de cruce entre ellos. La cosa es que quiero que coja el primer punto de intersección y pare, pero claro el sigue comparando y coge el siguiente punto de corte, y luego el siguiente. Podría alguien decirme como parar en el primer punto, el más exterior. Dejo la imagen en el fichero adjunto. Gracias.
anteresta=0.1 + 0i;
resta=0 + 0i;
ptoy=0 + 0i;
ptox=0;
kp=0.5;
t=2.1;
L=0.9;
w1=0.1*(0.1:0.1:150);
G=(kp./(t*1i*w1+1)).*exp(-L*1i*w1);
plot(G,'r'); hold on
Kc=1.5;
Pr=0.25;
Ti=0.2;
w2=0.1*(0.1:0.1:150);
DF=-1./((Kc*(1i*(w2*Ti+(4*Pr/pi))+1)./(1i*w2*Ti)));
plot(DF, 'g') ;
% Buscamos la mínima diferencia entre las dos funciones
n=length(w1);
m=length(w2);
for i=1:n
for j=1:m
resta = abs(G(i)-DF(j));
if (resta < anteresta)
ptoy = G(i);
ptox = i;
anteresta = resta;
end
end
end
disp(ptoy);