Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB - Simulink Analyse und Simulation dynamischer Systeme

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Contourf plot für mehrere Felder einer Struktur

 

CaroWi
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2020, 12:53     Titel: Contourf plot für mehrere Felder einer Struktur
  Antworten mit Zitat      
Hallo,
ich möchte gern ein Contourf-Plot erstellen mit den Daten einer Struktur.
Für x,y, und u gibt es je 16 Felder und jedes Feld besteht aus 102x87 Einträgen.
Die Daten stellen einen Versuchskanal entlang der x-Achse dar. Die y-Werte sind also für jedes Feld identisch, die x-Werte gehen von -20 bis 620.
Jetzt möchte ich die gesamte Kanallänge x in einer Figur darstellen.
Wenn ich es mit dem angegebenen Code mache, dann wird nur eine Figur mit den Werten von i=16 erstellt.
Mache ich den figur-Befehl noch mit in die for-Schleife, dann werden 16 verschiedenen Plots erstellt.

Kann mir jemand helfen?
Vielen Dank schon mal:)


Code:

files = dir('Desktop\Level2\data_fit\*.mat');
level2 = load([files.folder '/' files.name]);

for i = 1:16
   x=  level2.data(i).x;
   y=  level2.data(i).y;
   u=  level2.data(i).u;
end

Werte= struct('x',x,'y',y,'u',u);
figure;
hold on;
grid on;
[C,h] = contourf(Werte.x,Werte.y,Werte.u);
hold on;
set(h,'LineColor','none');
caxis([-0.1 1]);
c = colorbar;
c.Label.String = 'u/U_{centerline}';
xlabel('x/L${\mbox{pm}}$','interpreter','latex')
ylabel('y/H','interpreter','latex')
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

der figure-Befehl ist nicht unbedingt nötig (MATLAB erstellt automatisch eine Figure, wenn keine da ist), muss aber wenn vor die for-Schleife.

Das Erstellen des Structs und des Plots muss in die for-Schleife.

Beschriftungen können nach der Schleife erfolgen.

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
 
CaroWi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2020, 15:28     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die Antwort!

Jetzt habe ich noch eine Frage zu dem gleichen Problem.
Und zwar überschneiden sich die Felder in x Richtung ein wenig. Wie bekomme ich es hin, dass im Bereich der Überschneidung entweder ein Mittelwert der Daten von den Feldern verwendet wird, oder aber nur die Werte von einem Feld?

Außerdem möchte ich Hohlräume generieren. Also Bereiche in denen u=0 gesetzt werden soll. Diese Bereiche sollen eine bestimmte Größe haben und einen gleichmäßigen Abstand voneinander.


Ich freue mich über Hilfe!
Viele Grüße,
Caro
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.396
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.09.2020, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Und zwar überschneiden sich die Felder in x Richtung ein wenig.

Ich habe Schwierigkeiten, mir das vorzustellen. Ein Bild oder noch besser Beispieldaten zum Reproduzieren wäre hilfreich.

Zitat:
Wie bekomme ich es hin, dass im Bereich der Überschneidung entweder ein Mittelwert der Daten von den Feldern verwendet wird, oder aber nur die Werte von einem Feld?

Kurz gesagt: die Daten entsprechend vorverarbeiten. Mehr kann ich dazu wirklich nur sagen, wenn ich wirklich die Daten sehe oder zumindest das Bild.

Zitat:
Also Bereiche in denen u=0 gesetzt werden soll.

Da kann ich nur raten, diese Bereiche auf 0 zu setzen. Mag sich doof anhören, aber mehr kann man ohne genauere Informationen leider nicht sagen.

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
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.