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

How to remember my last directory

 

zidane
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2011, 17:05     Titel: How to remember my last directory
  Antworten mit Zitat      
hallo leute
so sieht mein code aus

Code:

[filename, pathname] = uigetfile({'* mat';'*.*'},'Pick a file');

if isequal(filename,0) || isequal(pathname,0)
       disp('--> User pressed cancel')
else
    str=['load ''' pathname filename ''' InputData'];
    eval(str)
    str=['--> Data loaded to  file: '  pathname filename];
    disp(str);
end
  File = fullfile(pathname, filename);
  if exist(File, 'file') == 2
   cd(pathname)
  end
 


ich will mein code so umändern so dass mein verzeichniss sich nich ändern.ich will dass matlab mein letztes verzeichniss einfach merkt
ich bin für jede Hile dankbar
Private Nachricht senden Benutzer-Profile anzeigen


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.02.2011, 19:48     Titel:
  Antworten mit Zitat      
Hallo,

Code:
directory = cd;
speichert das momentane Verzeichnis
Code:
cd(directory)
wechselt wieder zurück in dieses Verzeichnis.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2011, 20:19     Titel:
  Antworten mit Zitat      
hallo
ja harald aber ich will dass matlab sich mein das verzeichnis merkt wovon ich
mein filename ausgewählt habe.
das tut mein code ja auch aber das matlab verzeichnis ändert sich ja auch was ich nicht will.
Private Nachricht senden Benutzer-Profile anzeigen
 
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.02.2011, 20:31     Titel:
  Antworten mit Zitat      
Hallo,

dieses Verzeichnis hast du doch schon, es steht in pathname.
Und der Grund, warum sich das Verzeichnis ändert, ist "cd(pathname)". Wenn du nicht willst, dass sich das Verzeichnis ändert, dann lass das doch weg?
Wenn du das Verzeichnis vorübergehend ändern musst, aber die Änderung für den User nicht sichtbar sein soll: siehe oben.

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
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.02.2011, 00:45     Titel: Re: How to remember my last directory
  Antworten mit Zitat      
Hallo zidane,

Und nur als Kommentar zum Code, weil ich es heute noch nicht gesagt habe:

Code:
str=['load ''' pathname filename ''' InputData'];
eval(str)

Gefährlich! Ich kann Dir einen Pfad- und Filenamen konstruieren, der auf diesen Code hin Matlab von der Platte löscht oder andere unpraktische Dinge macht.
Einfacher und sicherer wäre:
Code:
load(fullfile(pathname, filename, 'InputData');

Dann würde ich noch die Ausgabe von LOAD immer in einer Variable speichern - dazu habe ich hier im Forum schonmal etwas geschrieben.

Und Harald hat ganz recht: Wenn Du das Verzeichnis nicht ändern möchtest, lasse "cd(pathname)" einfach weg.

Gruß, Jan

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2011, 13:05     Titel:
  Antworten mit Zitat      
Hi jan,
ich glaube meine frage wurde nicht richtig verstanden.
also kurz ich würde gerne den pathname als default directory verwenden wenn pathname nach der ersten Ausführung existiert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 04.02.2011, 14:19     Titel:
  Antworten mit Zitat      
Hey,

@ Jan S.: kannst du mir das mit eval nochmal erklären Wink...lol (und täglich grüßt das Murmeltier)

So nun zu deinem Problem. Ich bin mir nicht ganz sicher was du möchtest. Du kannst einen Path dem Matlabpath hinzufügen mittels
Code:

addpath('C:\Ordner1\Ordner2') % path hinzufügen
path % aktuelle Pfade anzeigen lassen
rmpath('C:\Ordner1\Ordner2') % path entfernen
 


Falls du beim erneuten Aufruf von uigetfile den letzten vom user benutzten Pfad speichern willst musst du diesen beispielsweise in deiner handlesstruktur speichern und bei erneuten Aufruf von uigetfile entsprechend übergeben... z.B.
Code:

if isfield(handles,'Ladepfad')
   Ladepfad = handles.Ladepfad;
else
   Ladepfad = 'C:\Programme';
end
[filename, pathname] = uigetfile('*.mat','Projekt laden(*.mat)',Ladepfad);
if ~isequal(filename,0)
   handles.Ladepfad  = pathname;
   guidata(handles.figure1,handles)% speichern der handles in figure
end
 

ich hoffe, dass eine der Lösungen dir weiterhilft...

MfG Marco[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
zidane
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2011, 15:47     Titel:
  Antworten mit Zitat      
hallo jan,
so sieht der code jetzt bei mir aus und der macht das genau was ich will.

Code:

if ((exist('pathname','var')==1)&& (exist('filename','var')==1))
    file = fullfile(pathname,filename);
   [filename, pathname] = uigetfile({'* mat';'*.*'},'Pick a file',file);
else
    [filename, pathname] = uigetfile({'* mat';'*.*'},'Pick a file');
end

if isequal(filename,0) || isequal(pathname,0)
       disp('--> User pressed cancel')
else
    str=['load ''' pathname filename ''' InputData'];
    eval(str)
    str=['--> Data loaded to  file: '  pathname filename];
    disp(str);
end
 


trotzdem danke an alle,die versucht haben ,mir zu hilfen
MFG

Edit by denny. Bitte die Codeumgebung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 07.02.2011, 14:14     Titel:
  Antworten mit Zitat      
Hallo Zidane,

es hätte auch ohne EVAL genauso gut funktioniert, einfach Beitrag von Jan anschauen!

Code:


if ((exist('pathname','var')==1)&& (exist('filename','var')==1))
    file = fullfile(pathname,filename);
   [filename, pathname] = uigetfile({'* mat';'*.*'},'Pick a file',file);
else
    [filename, pathname] = uigetfile({'* mat';'*.*'},'Pick a file');
end

if isequal(filename,0) || isequal(pathname,0)
       disp('--> User pressed cancel')
else
    load(fullfile(pathname,filename), 'InputData');
    fprintf('--> Data loaded to  file: %s', fullfile(pathname,filename));
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
zidane
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2011, 20:58     Titel:
  Antworten mit Zitat      
ja das stimmt danke für den Hinweis
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.