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

in anderen ordner printen

 

clem35
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 23.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2008, 16:36     Titel: in anderen ordner printen
  Antworten mit Zitat      
hi leute

kann mir jemand sagen, wie ich in einen anderen ordner printen kann

mit dem befehl

Code:

print('-djpeg',name)
 


printet er mir den aktuellen plot in den current directory,..
ich möchte aber jpegs erstellen, die den selben namen haben wie jene die sich schon in dem aktuellen directory sind

bitte um hilfestellung, für profis sicher kein problem *g*

mfg clemi
Private Nachricht senden Benutzer-Profile anzeigen


keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 31.01.2008, 17:02     Titel:
  Antworten mit Zitat      
Versuchs mal mit

Code:

path = strcat(pwd,'\bearbeitet\');
mkdir(path);
print('-djpeg',[path name]);
 


Damit sollten die Bilder in ein Unterverzeichnis namens "bearbeitet" gespeichert werden.

Edit:
Wenn Du ein statisches Unterverzeichnis wählst, wirst Du vermutlich die Warnung erhalten, dass das Unterverzeichnis schon existiert. Diese Warnmeldung lässt sich allerdings unterdrücken.
Alternativ könntest Du auch den Dateinamen ändern, sofern das nicht im weiteren Verlauf Deiner Datenverwertung zu Problemen führt.
Private Nachricht senden Benutzer-Profile anzeigen
 
tensor
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 23.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2008, 19:06     Titel:
  Antworten mit Zitat      
Ich sitze an einem ähnlichen Problem:

Leider funktioniert der Vorschlag in Verbindung mit dlmwrite nicht. mkdir erzeugt zwar das Verzeichnis, aber die Datei wird nicht geschrieben.

In der Matlab-Hilfe finden sich nur Themen zur Änderung des Arbeitsverzeichnisses.
Ich bin mir aber sicher, daß dieser Wunsch, Daten in Unterverzeichnisse des Arbeitsverzeichnisses zu schreiben kein seltener ist.

Grüße tensor
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 31.01.2008, 19:14     Titel:
  Antworten mit Zitat      
Also bei mir klappts, allerdings weiss ich auch nicht, welche weiteren Übergabeoptionen Du für dlmwrite() nutzt.

Code:

A = ones(10);
pfad = strcat(pwd,'\dlmtest\');
name = 'dlmA';
mkdir(pfad)
dlmwrite([pfad name],A,'\t');
 


Wichtig ist halt (auch in diesem Beispiel), dass das momentan aktive Verzeichnis als Ausgangspunkt gilt (pwd ist eine Substitution für das aktuell aktive Verzeichnis).

Wenn es ein andere Verzeichnis sein soll, ginge beispielsweise auch:
Code:

pfad = 'C:\dlmtest\';
 

Dann wird die Datei im Unterverzeichnis C:\dlmtest gespeichert.
Private Nachricht senden Benutzer-Profile anzeigen
 
tensor
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 23.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2008, 19:40     Titel:
  Antworten mit Zitat      
Auch wenn ich deinen Code 1:1 übernehme, bleibt das neu erstellte Verzeichnis dlmtest leer.

Ich vermute, daß das nur auf Windows, aber nicht auf Mac OS funktioniert?

Können das evt. andere Mac-Benutzer verifizieren?

Grüße tensor
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 31.01.2008, 19:46     Titel:
  Antworten mit Zitat      
Ich kenne mich mit Macs nicht aus, soviel vorweg.
Aber da zumindest Mac OS X im Dateisystem sehr mit Unix verwandt ist, sollte sich die Ordnerverwaltung auch ähnlich verhalten.

Am Besten ist es, Du suchst in der MATLAB-Hilfe nach Hinweisen über die Pfadnamen und -benennungen bzw. Dateinamen.

Nachtrag: Eventuell könnte es, nachdem ja das Verzeichnis erstellt wird, an den Verzeichnis-Zugriffsberechtigungen liegen? Wenn die Ähnlichkeit zu Unix groß genug ist, sollten da Flags sein, die das Schreiben und Lesen für bestimmte User und Usergruppen regeln.

Ausserdem wäre es unter Mac OS X eventuell besser, im Pfadnamen "/" statt "\" zu verwenden, allerdings denke ich nicht, dass es daran liegt.
Private Nachricht senden Benutzer-Profile anzeigen
 
tensor
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 23.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2008, 19:57     Titel:
  Antworten mit Zitat      
Manchmal sind es die Kleinigkeiten Wink

Die umgekehrten Schrägstriche sind mir gar nicht aufgefallen. Tauscht man diese aber beim Mac um, dann funktioniert es tatsächlich.

Vielen Dank für den Hinweis, auch wenn du ihn nicht für zielführend gehalten hast.

Grüße tensor

Nachtrag: Du erwähntest, daß man den Warnhinweis "Verzeichnis existiert schon" abschalten kann, Frage wie? Danke.
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 01.02.2008, 01:17     Titel:
  Antworten mit Zitat      
Puh, ich habs nie benutzt, müsste aber gehen mit
Code:

warning off all % Ausschalten
warning on all % Danach wieder einschalten (sonst könnten wichtige Warnungen fehlen)
 


Man kann statt "all" auch einzelne Typen von Warnung aus- und einschalten, allerdings weiss ich da nicht, welche genau es ist.
Der Nachteil daran, alle Warnungen auszuschalten ist eben, dass unbemerkt Fehler im Programm auftreten können. Daher ist es letztlich nur ein "schmutziger Trick", um eine echte Fehlerabfrage durch If-Anweisungen zu umgehen.

Um es programmiertechnisch einwandfrei zu gestalten, könntest Du auch folgendes versuchen:
Code:

if ~isdir(pfad) % Überprüft, ob 'pfad' kein Verzeichnis ist. Wenn es nicht existiert, sollte es auch kein Verzeichnis, also sollte mkdir ausgeführt werden
mkdir(pfad)
end
 


Da ich zu hause kein Matlab habe, garantiere ich nicht für die Korrektheit dieses Vorschlags ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
tensor
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 23.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2008, 03:00     Titel:
  Antworten mit Zitat      
Stimmt, letzteres gefällt mir besser.

Danke für deine Hilfe.

tensor
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 01.02.2008, 10:09     Titel:
  Antworten mit Zitat      
Moin, als kleiner Tipp für zukünftige Sachen: Wenn ihr statt eines expliziten '/' bzw. '\' filesep verwendet, könnt ihr den Code plattformunabhängig verwenden. (zumindest, was die Dateiverwaltung angeht Wink )

Der folgende Code sollte sowohl auf einer Windows-, Unix- oder Mac-Kiste laufen:
Code:
A = ones(10);
pfad = strcat(pwd,filesep,'dlmtest',filesep);
name = 'dlmA';
mkdir(pfad)
dlmwrite([pfad name],A,'\t');


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
clem35
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 23.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2008, 10:14     Titel:
  Antworten mit Zitat      
hi

also ich hab das jetzt mal ausprobiert, bin aber nicht weit gekommen, da es sofort eine fehlermeldung gibt

??? Error using ==> mkdir
Cannot create absolute directory inside C:\MATLAB6\work\Steiner

Error in ==> C:\MATLAB6\work\plot_2d.m
On line 29 ==> mkdir(pfad);

Liegt es vielleicht daran, dass ich das m-file plot_2d.m im workordner habe und das zielfile ja work\Steiner\2d\... sein sollte

muss ich noch irgendwas beachten bei dem code eden ihr gepostet habt?

vorläufig sieht er so aus
Code:

path = strcat(pwd,'\2d\');
mkdir(path);
print('-djpeg',[path name]);


lg clemi
Private Nachricht senden Benutzer-Profile anzeigen
 
tensor
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 23.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2008, 10:15     Titel:
  Antworten mit Zitat      
Programmiertechnisch noch besser. Smile

Danke.

tensor
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 01.02.2008, 10:23     Titel:
  Antworten mit Zitat      
clem35 hat Folgendes geschrieben:
muss ich noch irgendwas beachten bei dem code eden ihr gepostet habt?

Also bei mir funktionierte es einwandfrei, allerdings nutze ich auch Version R2007b. Ich kann also nicht ausschliessen, dass es unter Matlab 6 eventuell zu Fehler führt.

Wenn ich mir die genaue Fehlermeldung allerings ansehe:
Wäre es möglich, dass Deine Pfad-Variable anders heisst als das Argument in mkdir? Im Beispiel heisst sie "path", in der Fehlermeldung allerdings offensichtlich "pfad".
Private Nachricht senden Benutzer-Profile anzeigen
 
clem35
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 23.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2008, 10:29     Titel:
  Antworten mit Zitat      
mkdir oder so funktioniert auch in matlab6

bei der fehermeldung, hab ich wollt ich nur mal den namen ändern, darum hab ich die falsche fehlermeldung zum richtigen code dazukopiert,
weshalb es aber immer noch nicht funkioniert.

danke trotzdem, wenn dir noch was enfällt, bitte posten

clemi
Private Nachricht senden Benutzer-Profile anzeigen
 
Knulftrud
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 21.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2008, 11:40     Titel:
  Antworten mit Zitat      
Hallo Leute,
Ich hab das Problem auf diese Weise gelöst, jedoch hat mein Pfad, durch das 'datei_in' ein '.mat anhängen, welches gegenüber dem '.jpg' dominant ist und somit nicht als Bild gespeichert wird. Wie bekomme ich aus dem Pfad besagtes '.mat' raus?

Code:
Bild3 = ['D:\disp\Ausgabe\Dispersionsbilder\' 'Maximum-' datei_in];
print ('-djpeg', [Bild3]);
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.