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

Plots in for-Schleife plotten nicht

 

MrUglyy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2022, 22:34     Titel: Plots in for-Schleife plotten nicht
  Antworten mit Zitat      
Hallo,
Ich hab folgendes Problem:
Ich habe ein Matrix "sortTabel" und einen Vector "recFactor".
In der Matrix gibt es 2 Spalten mit Winkeln, die immer abwechselnd laufen.
Also wenn der Winkel aus Spalte 13 läuft, steht der Winkel aus Spalte 12 still und umgekehrt.
Folgendes war mein Ansatz:
Code:

startAngle = abs(sortTabel(1,13));
m=1;
i=1;
for i = i:size(sortTabel)

    if sortTabel(i,13) == startAngle    %Gamma
        plot(sortTabel(m:i,13),recFactor(m:i),"-","Linewidth",3)
        xlabel("GAMMA[deg]")
        ylabel("Recovery Factor[-]")
        m = i +1;
        hold off
    elseif sortTabel(i,12) == startAngle    %Alpha
        plot(sortTabel(m:i,12),recFactor(m:i),"-","Linewidth",3)
        xlabel("ALPHA[deg]")
        ylabel("Recovery Factor[-]")        
        m = i +1;
        hold off
    end
       
       
end

An der Ausgabe von der Variablen m kann ich erkennen, dass meine Idee grob funktioniert, allerdings wird nur der letzte Plot aus der for Schleife geplottet und alle anderen Plots davor nicht. ( Im Anhang ist ein kleiner Screenshot von den Winkeln,damit man sich mein vorgehen etwas besser vorstellen kann.)
Hat jemand eine Idee, woran das liegen könnte?
Danke schonmal im voraus.
Aaron

Screenshot 2022-03-26 212821.png
 Beschreibung:

Download
 Dateiname:  Screenshot 2022-03-26 212821.png
 Dateigröße:  4.78 KB
 Heruntergeladen:  121 mal
Screenshot 2022-03-26 212821.png
 Beschreibung:

Download
 Dateiname:  Screenshot 2022-03-26 212821.png
 Dateigröße:  4.78 KB
 Heruntergeladen:  129 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.03.2022, 23:47     Titel:
  Antworten mit Zitat      
Hallo,

es fehlt auf jeden Fall ein "hold on".
Ansonsten würde ich den Debugger verwenden um zu überprüfen, ob die vorherigen Plots nie erzeugt oder überschrieben werden.

i:size(sortTabel) halte ich für recht ungünstig. Es kann sein, dass dies das richtige macht, aber klarer wäre wirklich zu schreiben, was du meinst, nämlich i:size(sortTabel,1) oder i:size(sortTabel,2) .

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
MrUglyy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2022, 09:38     Titel:
  Antworten mit Zitat      
Hallo Harald,
mit dem "hold on" command sorge ich doch dafür, dass alles in einen Graphen geplottet wird. Das will ich eben nicht.
Aber ja die Graphen überschreiben sich tatsächlich gegenseitig.
Wie könnte ich das verhindern?
Gruß,
Aaron
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.03.2022, 10:01     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
mit dem "hold on" command sorge ich doch dafür, dass alles in einen Graphen geplottet wird. Das will ich eben nicht.

Was willst du denn dann stattdessen?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
MrUglyy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2022, 10:45     Titel:
  Antworten mit Zitat      
Hallo,
Ich will, dass für jeden Winkel durchlauf ein eigener Plot erstellt wird.
Also immer abwechselnd für Gamma und Alpha, je nachdem welcher Winkel gerade durchlaufen wird.
Am ende müssten aus der 420 Zeilen Matrix 60 Plots entstehen.
Gruß
Aaron
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.03.2022, 10:47     Titel:
  Antworten mit Zitat      
Hallo,

was heißt denn "eigener Plot"?
Falls separates Fenster: das müsstest du mit figure öffnen. Willst du aber wirklich 60 Fenster öffnen??

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
MrUglyy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2022, 11:24     Titel:
  Antworten mit Zitat      
Vielen herzlichen Dank!
Es hat geklappt
 
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 - 2024 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.