function camino(num_int,invertir,tx,rx) %Función que calcula y almacena las trayectorias de reflexión, num_int %representa el numero de intersecciones total en una trayectoria, tx el %transmisor original y rx el punto receptor. La última intersección decide %en que sentido se almacena la trayectoria. Si es de reflexión se invierte %ya que venia desde rx-tx; si es de difracción, no se invierte ya que venia %desde tx-rx global INTERSECCIONES TRAYECTORIAS; [ult_trayectoria ~]=size(TRAYECTORIAS); %Indice de la ultima trayectoria [ult_int ~]=size(INTERSECCIONES); %tipo=INTERSECCIONES(ult_int,3); %0/1/2 reflexión/transmisión/difracción prim_int=ult_int-num_int+1; %Primera interseccion de trayectoria actual dist_parcial=[]; if(invertir==1) dist_parcial=[dist_parcial distancias(tx,INTERSECCIONES(ult_int,1:2))]; if(num_int>1) for i=ult_int:-1:prim_int+1 dist_parcial=[dist_parcial distancias(INTERSECCIONES(i,1:2),INTERSECCIONES(i-1,1:2))]; end end dist_parcial=[dist_parcial distancias(INTERSECCIONES(prim_int,1:2),rx)]; dist_total=sum(dist_parcial); ult_trayectoria=ult_trayectoria+1; %Se almacenan ahora los indices de las intersecciones del tx al rx, por eso %se invierte el orden, ya que las intersecciones venian del rx al tx TRAYECTORIAS(ult_trayectoria,1:2*num_int+3)=[num_int [ult_int:-1:prim_int] dist_parcial dist_total]; else %Es de difracción y viene dado ya en sentido tx-rx dist_parcial=[dist_parcial distancias(tx,INTERSECCIONES(prim_int,1:2))]; if(num_int>1) for i=prim_int:ult_int-1 dist_parcial=[dist_parcial distancias(INTERSECCIONES(i,1:2),INTERSECCIONES(i+1,1:2))]; end end dist_parcial=[dist_parcial distancias(INTERSECCIONES(ult_int,1:2),rx)]; dist_total=sum(dist_parcial); ult_trayectoria=ult_trayectoria+1; TRAYECTORIAS(ult_trayectoria,1:2*num_int+3)=[num_int [prim_int:ult_int] dist_parcial dist_total]; end end