Matlab - While no reconoce una condición

 
Vista:

While no reconoce una condición

Publicado por Fernando Tacle (5 intervenciones) el 16/02/2021 15:04:33
Saludos cordiales, estoy elaborando un código, todo me funciona bien, pero en la sentencia while no reconoce una de las condiciones que se asignó, e intentado solucionar de varias maneras pero no lo consigo, su ayuda con este problema por favor. El problema radica solamente en la sentencia While, esta en la condición que no se cumple lmax>long

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
clear all
tic
s = [1 2 3 4 5 6 7 7 5 10 11 12 13 14 15 16 17 13]; % nodo de salida
t = [2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]; % nodo de llegada
tf=0.00437368; % horas
tr=0.53019202; % horas
tm=1.89; % horas
capalim1_18=[7.736 7.736 7.736 7.736 5.89 5.89 5.89 5.89 5.89 5.89 5.89...
     5.89 5.89 5.89 5.89 5.89 5.89 5.89]; % Límite de cada línea MVA
weights = [0.83 1.83  2.28 1.60 1.28 1.11 1.7 1.08 1.69 1.42 ...
    2.22 3.77 2.52 7.69 2.19 5.14 1 2.16]; % longuitud de las líneas
names = {'1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' ...
    '13' '14' '15' '16' '17' '18' '19'}; % número de nodo
G = graph(s,t,weights,names);
plot(G,'EdgeLabel',G.Edges.Weight);
camroll(90);
nlin=1:numnodes(G)-1;
for a=1:length(weights)
   tfm(a)= tf;
   trm(a)= tr;
end
mtr=[nlin' s' t' capalim1_18' tfm' trm' weights']; %almacena la matriz de tramos
% matriz de nodos
nd=1:numnodes(G); % nodos donde se encuentran las cargas
pot=[7.736 -0.355 -0.47 -0.175 -0.335 -0.23 -0.175 -0.175 -0.565 -0.085 -0.113 ...
    -0.446 -0.261 -0.826 -0.393 -0.747 -0.799 -0.555 -0.52]; % potencias por nodo
us=[387 387 387  387  387  387 386  387 387  387 387 387 387 387 387 ...
     387 387 387 386]; % numeros de ussuarios por nodo
mno=[nd' pot' us']; %almacena la matriz de nodos, usuarios y cargas
% Se calcula aleatoriamente la reconexión
long=0;
ini=0;
fin=0;
n=0;
lmax=max(max(weights))
while lmax>long && ini-fin>=0 && ini-fin<=1
ini = s(randi([1 length(s)],1)); % Numero aleatorio de inicio
fin = t(randi([1 length(t)],1)); % Numero aleatorio de inicio
inf1=[ini fin];
inf1=sort(inf1);
% Se asigna la potencia máxima que transmite el nuevo tramo
    if ini>5 && fin>5
    carg=5.89;
else
    carg=7.736;
    end
d = distances(G); % Identifica las distancias entre nodos
long=d(inf1(1),inf1(2)) % Calcula la longuitud entre el nodo inicial y final de la reconfiguración
n=n+1
end
long;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

While no reconoce una condición

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/02/2021 18:32:49
Y las tres condiciones solo cumplen al mismo tiempo solo al inicio, después ya no cumplen al mismo tiempo las condiciones por lo tanto ya no entra al bucle while. Entonces lo que se tiene que hacer el proceso de la codificación, los demás partes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar