Forum PCLab.pl: Matlab - jak zrobić wykres dla wyników? - Forum PCLab.pl

Skocz do zawartości

Otwarty

Ikona Najnowsze pliki

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

Matlab - jak zrobić wykres dla wyników? Oceń temat: -----

#1 Użytkownik jest niedostępny   Elzulninho 

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 135
  • Dołączył: Cz, 03 Sty 13

Napisany 22 Maj 2019 - 12:16

Witam mam taki kod:
function kp = ga1(h, k, mi, Kstart, Kstop)


%funkcja wraca optymalne wartości parametrów Kp i Kd (lub zero) 
%dla podanego zakresu 
%a=[1;2;5;9;15;34]
%plot(a)

%params [Kp Kd, Kl a0 b0 mi]

%for optymalizacja dyskretna

populacja = 100;
generacji = 100;
geny = [1:populacja];
kids = [1:populacja];
fit = [1:populacja];

%licz a dla wszystkich przywołań funkcji eFun
a = [ 1.0 ];
i = 2.0;
while ( i <= k+1 ) 
   a = [a (a(end) *  (1.0 - (mi + 1.0)/(i-1))) ];
   i = i + 1.0;
end


%Kstart = -100;
%Kstop = 100;

%pierwsze pokolenie generowane losowo
for i = 1: populacja
   geny(i) = rand;
   geny(i) = Kstart + geny(i) * (Kstop - Kstart);
end
geny;

fit = fitness(h, k, mi, geny, a,  populacja); 



for i = 1:generacji
   fprintf('.' );
   parent1 = ruletka(geny, fit, populacja);      
   parent2 = ruletka(geny, fit, populacja);      
   geny = krzyzowanie(parent1, parent2, populacja);
   
   %MUTACJA?
         
   %przeliczamy dopasowanie dla nowego pokolenia
    fit = fitness(h, k, mi, geny, a, populacja); 
        
    kp = max(fit);
end

   
fitBest = max(fit);
for j = 1: populacja
	if (fit(j) >= fitBest)
     	kp = geny(j);
     	break;
  	end
end

eFunFull(h, k, mi, [kp; 0; 1; 1; 1; 1])



Testuje na takich wartościach ga1(.1, 3, 1, -100, 100)
Otrzymuje w command window następujące wyniki:
ans =

-0.0099
-0.0102
0.0002
-0.0200
1.0000


ans =

28.0000
Nigdy nie miałem styczności z matlabem, jak zrobić wykres takich wyników?

#2 Użytkownik jest niedostępny   januzi 

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 35653
  • Dołączył: Nd, 08 Cze 03

Napisany 22 Maj 2019 - 12:43

https://www.mathwork...b/ref/plot.html

#3 Użytkownik jest niedostępny   Elzulninho 

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 135
  • Dołączył: Cz, 03 Sty 13

Napisany 23 Maj 2019 - 09:14

Kiedyś dawno temu w liceum korzystałem z plot... ale teraz próbuje i mi nie wychodzi

#4 Użytkownik jest niedostępny   Elzulninho 

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 135
  • Dołączył: Cz, 03 Sty 13

Napisany 23 Maj 2019 - 10:07

plot(ga1(.1, 3, 1, -100, 100)) proóbowałem tak...

#5 Użytkownik jest niedostępny   januzi 

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 35653
  • Dołączył: Nd, 08 Cze 03

Napisany 23 Maj 2019 - 20:19

pokazało jakiś komunikat błędu?
ew. jako pierwszy zestaw argumentów daj zbiór mający tyle samo elementów co wynik funkcji (np. 1, 2, 3, 4, ...)

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych