[MATLAB] Bledy w wizualizacji

0

Witam!

Robie prezentacje graficzna do algorytmu genetycznego. Kazdy czlonek populacji to osobna funkcja na wspolnym wykresie. Populacja jest dosc duza, wiec taka mnogosc funkcji bylaby nieczytelna, dlatego pomyslalem, ze osobniki, ktore dominuja beda mialy grubsze linie. Oto fragment kodu

[code]
for i=1:size(Rodzice,1)
poprzednik = 1;
x = Rodzice(i);
B(1,1) = 1;
B(1,2) = 1;
licznik = 2;
for j=1:size(Siec,1)
potega = power(2,size(Siec,1)-j);
if x - potega >= 0
B(licznik,2) = poprzednik;
B(licznik,1) = j;
licznik = licznik+1;
hold on;
poprzednik = j;
x = x - potega;
end;
end;

grubosc = 0;
for j=1:size(Rodzice,1)
    if Rodzice(i) == Rodzice(j)
        grubosc = grubosc + 1;
    end;
end;
grubosc = floor(grubosc/(size(Rodzice,1)/5));
if grubosc < 1
    grubosc = 1;
end;

plot(B(:,1),B(:,2),Kolor,'LineWidth',grubosc);
plot(B(:,1),B(:,2),'ko','LineWidth',2);

end;
[/code]

gdzie Rodzice, to wektor z danymi o populacji, a B sluzy do przechowywania ich binarnej reprezentacji

Niestety cos nie dziala jak nalezy, poniewaz linie w srodku funkcji przechodza nagle z cienkich w grube, co wg kodu nie powinno sie zdarzac.

Te neiszczesna sytuacje zamiescilem na rysunku ponizej.

user image

Czy matlab po prostu nie wyrabia z rysowaniem? Jesli ktos ma pojecie co powoduje ten nieciekawy efekt i wie jak mu zapobiec, niech koniecznie sie ta wiedza podzieli :)

0

A moze rysuje druga linie obok tamtej linii

0

teoretycznie powinien robic funkcje od ptk (1,1), czyli gruba linie powinna isc od lewego dolnego rogu, nie inaczej (chyba ze przykryje ja linie fioletowa).

1 użytkowników online, w tym zalogowanych: 0, gości: 1