Ordina grafo matlab
salve. ho un problema su cui sono fermo da giorni e non so come risolvo. chiedo aiuto a voi e ve ne ringrazio anticipatamente.
premetto che sono un programmatore novello e sto scrivendo la mia tesi per ottimizzare il calcolo di fognature partendo da una schematizzazione di bacini e/o collettori partendo da grafi.
finora sono riuscito ad assegnare soltanto l'ultimo nodo di tutto il grafo, ma non so e non riesco ad assegnare gli altri valori a cascata.
vi riporto finora quel che ho scritto e che funziona per l'ordinamento del grafo
grazie di nuovo a tutti per la vostra attenzione
premetto che sono un programmatore novello e sto scrivendo la mia tesi per ottimizzare il calcolo di fognature partendo da una schematizzazione di bacini e/o collettori partendo da grafi.
finora sono riuscito ad assegnare soltanto l'ultimo nodo di tutto il grafo, ma non so e non riesco ad assegnare gli altri valori a cascata.
vi riporto finora quel che ho scritto e che funziona per l'ordinamento del grafo
- Codice: Seleziona tutto
% % soluzione da trovare o similare
% % N_i = [ 7 6 5 10 1 2 3 8 4 ]
% % N_f = [ 5 5 3 1 3 3 4 4 9]
clear all
q_p = fliplr( [ 5, 6, 10, 22, 33, 55, 44, 66, 77 ] )% inversione del vettore in ingresso
N_i = fliplr( [ 8, 1, 2, 5, 4, 3, 6, 7,10 ] )
N_f = fliplr( [ 4, 3, 3, 3, 9, 4, 5, 5, 1 ] )
n_i = zeros(1, length(N_i)); % creazione di un vettore di zeri per assegnazione valori
n_f = zeros(1, length(N_f));
cont_1 = zeros(1, length(N_i));
cont_2 = zeros(1, length(N_f));
%
for a = 1 : length(N_f)
for b = 1 : length(N_i)
% ricerca ed assegnazione nodo finale di tutto il grafo
% ricerca
% occorre il contatore per escludere il valore del nodo
% finale, poiché se si fa la ricerca su esso non si ha
% soluzione soprattutto utilizzando le diseguaglianza
if N_f(a) == N_i(b) && a ~= b % se verificato restituisce cont_1(b)>0 se è prensente in n_i, 0 se nodo finale di tutto il grafo trovato (assenza elemento in N_i)
cont_1(a) = cont_1(a) + 1
end
% assegnazione
for c = 1 : length(cont_1)
if cont_1(c) == 0 % ricontrollo di 0 in cont_1 (elemento finale di tutto il grafo) ed assegnazione nell'ultima posizione dei vettori
n_i(1) = N_i(c);
n_f(1) = N_f(c);
q(1) = q_p(c);
end
end
end
end
grazie di nuovo a tutti per la vostra attenzione