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

x,y,z Grid/Plot in einer Schleife

 

Nukular
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 25.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2010, 13:17     Titel: x,y,z Grid/Plot in einer Schleife
  Antworten mit Zitat      
Hallo,

ich möchte einen Plot (inklusive Grid) in einer Schleife ausführen, um mehrere Dateien mit einem Ablauf abzuhandeln.
Noch etwas konkretes zu den Daten: Ich habe viele (etwa 100) Dateien im x-y-z Format und möchte zu jeder Datei ein Grid erstellen und diesen darstellen. Für eine einzelne Datei sieht mein Matlab Code wie folgt aus:

Code:
load C:/out/temp/t009.asc
x=t009(:,1);
y=t009(:,2);
z=t009(:,3);
F.Method = 'linear'
F = TriScatteredInterp(x,y,z);
tx = 0:25:80000;
ty = -18000:25:-4000;
[qx,qy]=meshgrid(tx,ty);
qz=F(qx,qy);
mesh(qx,qy,qz)
view(0,90)
%Ausgabedatei erzeugen
pfad='C:\out\';
name='t009';
print('-djpeg','-r300',[pfad name]);


Das möchte ich jetzt alles in eine Schleife mit veränderbaren Dateinamen haben (t001 bis t130 zum Beispiel) ... meine bisherigen Versuche in Matlab Strings zu basteln und umzuwandeln sind alle gescheitert ... hat jemand eine Idee?

Grüße
Nukular
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.10.2010, 17:00     Titel: Re: x,y,z Grid/Plot in einer Schleife
  Antworten mit Zitat      
Hallo Nukular,

Zitat:
Das möchte ich jetzt alles in eine Schleife mit veränderbaren Dateinamen haben (t001 bis t130 zum Beispiel) ... meine bisherigen Versuche in Matlab Strings zu basteln und umzuwandeln sind alle gescheitert ... hat jemand eine Idee?

Das beste wäre es, Du würdest Deine Versuche Strings zu basteln posten, die Fehlermeldungen dazukopieren oder beschreiben, wie sich das Ergebnis und Deine Erwartungen unterscheiden.
Ein Forum kann sehr gut beim Lösen von Problemen helfen, es ist aber meistens gar nicht fähig ein Problem zu lösen wenn es gar nicht genau beschrieben ist.

Ich vermute, Du suchst nach folgendem:
Code:

for counter = 1:130
  countStr = sprintf('t%.3d', counter);
  Data = load(['C:/out/temp/', counterStr, '.asc']);
 

Ich habe die Daten nicht direkt in den Workspace geladen, weil das immer und immer und immer wieder ungahnte Probleme verursacht. Es ist effizienter und sicherer die Daten in ein Struct (hier "Data") zu laden und dann auch die Felder zuzugreifen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Nukular
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 25.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2010, 10:32     Titel:
  Antworten mit Zitat      
Danke für die Antwort, es funktioniert bestens.

Mein Fehler war, dass ich den load Befehl nicht einer Variable (Data) zugeordnet hatte ... ich wusste nicht, dass soetwas geht Smile , somit konnte ich beim verwenden der Daten immer nur eine Datei ansteuern.

Grüße
Nukular
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.10.2010, 16:07     Titel:
  Antworten mit Zitat      
Hallo Nukular,
Zitat:
Mein Fehler war, dass ich den load Befehl nicht einer Variable (Data) zugeordnet hatte

Das ist merkwürdigerweise hier im goMatlab Forum ein weit verbreitetes Problem. LOAD ohne Ausgabe und SAVE mit einer Variablen als File-Name scheint im deutschsprachigen Raum ein größeres Problem darzustellen, als z.B. in der englischen CSSM Newsgroup.

Im Gegenzug gibt es in der CSSM-Newsgroup immer und immer wieder Anfragen, warum die "nicht funktioniert":
Code:
(0:0.1:1) == 0.3

Es funktioniert ganz exakt, nur ist 0+1+0.1+0.1 halt nicht exakt 0.3, da der Computer nunmal mit Binärzahlen rechnet. Im goMatlab-Forum taucht das "Problem" aber deutlich seltener auf als in der CSSM-Group.

Ausserdem taucht in der CSSM-Group nur extrem selten ein Programm auf, dass seine Variablen per ASSIGNIN und EVALIN fehleranfällig aus dem Base-Workspace holt. Hier ist das jedoch leider sehr verbeitet.

Ich rätsele intensiv, wieso das so ist.

Gruß, Jan
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.