WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Logarithmische Abbildung Plot speichersparend

 

Droelf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2016, 14:30     Titel: Logarithmische Abbildung Plot speichersparend
  Antworten mit Zitat      
Hallo ich muss für die Uni die logarithmische Abbildung

f= mu*x*(1-x), x(k+1) = x(k);

plotten und soll dabei 1000 verschiedene Werte für mu in 100 Iterationen x verwenden und diese x Werte über mu plotten.
Das habe ich auch ohne Probleme geschafft nur leider ist das Zusammenfügen aller verschiedenen mus schwierig. Momentan arbeite ich mit dieser for-Schleife:

Code:

x = linspace(0, 4, 1000);

for k = 1:1000
   
    mu = x(k);
    y = logab(mu);
    plot(mu, y, 'ro');
    hold on;
   
end
 


Dabei ist logab eine von mir geschrieben Funktion, die die Iteration durchführt. Nun ist es mit der hold on Sache sehr speicherintersiv und mein PC schafft das kaum.
Kann ich irgendwie alle y-Werte mit den dazugehörigen mu als Paar zusammen packen, dass matlab alle Daten auf einmal plottet und nicht nacheinander?

Vielen Dank schon einmal im Vorraus.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.07.2016, 18:31     Titel:
  Antworten mit Zitat      
Hallo,

sollte eigentlich bei einer Suche hier zu finden sein.
Code:

x = linspace(0, 4, 1000);
y = zeros(size(x));

for k = 1:1000
    mu = x(k);
    y(k) = logab(mu);
end
plot(mu, y, 'ro');


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Droelf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2016, 13:40     Titel:
  Antworten mit Zitat      
Ok danke erstmal wusste einfach nicht genau nach was ich suchen soll.

Habe leider vergessen zu erwähnen, dass mein y ein Vektor aus 30 elementen ist, da ich die 30 letzten Iterationen meiner logab Funktion plotten soll. Dementsprechend das Problem, dass alle 30 Werte nur einen mu Wert haben sollen.
Meine logab-Funktion einmal:
Code:

function y = logab(mu)
%Erstellt einen Plot über verschiedene Werte von mu für die logistische
%Abbildung.
c = zeros(0, 100);
c(1) = 0.4;
y = zeros(0, 30);

    for k = 1:100
       
       c(k+1) = mu*c(k)*(1-c(k));
       r = c(k+1);
       if k >= 70
         
          m = 0;
          y(m+1, :) = r;
          continue;
         
       else
           
           continue;
           
       end
       
   end
end

 
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.07.2016, 15:45     Titel:
  Antworten mit Zitat      
Hallo,

d.h., dass du 1000 Kurven zu je 30 Datenpunkten hast? Das dürfte aber voll werden...

Wenn y Vektoren gleicher Längen sind, kannst du sie zu einer Matrix zusammenfassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Droelf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2016, 16:26     Titel:
  Antworten mit Zitat      
Ja genau so ist es.

Wie kann ich das denn machen? Bekomme ja jetzt von der Funktion einen Vektor mit 30 Einträgen und das 1000x. Wie kann ich matlab jetzt deutlich machen,dass es diese zusammenfügen soll?

Gruß
Droelf
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.07.2016, 18:18     Titel:
  Antworten mit Zitat      
Hallo,

nur kleine Anpassungen:

Code:
x = linspace(0, 4, 1000);
y = zeros(length(x), 30);

for k = 1:1000
    mu = x(k);
    y(:, k) = logab(mu);
end
plot(mu, y, 'ro');


Übrigens gerne die Forumsuche bemühen. Dieselbe Frage habe ich heute schon mal beantwortet.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.