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

Pfad als variable

 

wrz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2007, 19:22     Titel: Pfad als variable
  Antworten mit Zitat      
hallo,wie kann man Pfad als Variable stellen?In mein GUI Figur gibt es ein Listbox,in dem Listbox kann es alle Pfade des Arbeitplatz geben.Ich möchte durch den Listbox ein Order finden und die Datei darin bearbeiten.Aber ich kann nicht ein bestimmt Pfad in m file schreiben(wie addpath....).Denn es passt nicht bei andere computer.Kann jemand mir helfen,um der Pfad als variable zu stellen?Untern ist die Funktions Code
Code:

% Einlesen der Text-Dateien
for i=1:Anzahl
    fid = fopen([Name1 num2str(i,'%03d') Name2], 'r');
    A=textscan(fid,'%n %n','headerLines',2);
    B=cell2mat(A);
    druck(i,:)=B(:,2)';
    winkel(i,:)=B(:,1)';
    fclose(fid);
end
 



gruss wrz


opossumteil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2007, 10:27     Titel: Eval
  Antworten mit Zitat      
Moin,

um Befehle, die zur Laufzeit erzeugt werden auszuführen, kannst Du den eval Befehl nutzen. Eval wird ein String mit dem auszuführenden Befehl(mitsamt parametern) übergeben.

hier ein beispiel.
dateiname='keks';
eval(['fid = fopen([''' dateiname '''], ''w'')'])
fprintf(fid,num2str(cputime))
fclose(fid);

gugge anschliessend in da akteulle matlab verzeichnis. Dort findest du eine Datei mit dem Namen keks. Dein Beispiel musst Du nun entsprechend anpassen. Hinweis noch: Hochkommas müssen wie in dem Beispiel escaped werden. Soll also im zu evaluierenden String ein Hochkomma enthalten sein, so muss dieses mi '' escaped werden.

Gruß
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 29.11.2007, 17:41     Titel:
  Antworten mit Zitat      
Moin,

bin nicht ganz sicher, ob ich die Frage richtig verstehe:
Name1 und Name2 sind Strings? Z.B.
Code:

Name1 = 'Datei';
Name2 = '.txt';
 

so dass am Ende rauskommt
Code:

Datei001.txt
 

für z.B. i=1.
Warum nicht den Pfad aus der Listbox nehmen und dem Dateinamen hinzufügen?
Code:

value = get(handles.listbox1,'value');
string = get(handles.listbox1, 'string');
pfad = string{value};
fid = fopen(fullfile(pfad, [Name1 num2str(i,'%03d') Name2]), 'r');
 


Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
wrz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2007, 18:16     Titel:
  Antworten mit Zitat      
Danke für Ihre Hilfe.Ich habe versucht,aber kommt es ein fehler:??? Undefined function or variable 'handles'.
 
opossumteil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2007, 09:21     Titel:
  Antworten mit Zitat      
Moin nochmal,

dann versuch meine Idee, HEHE.

Jede erzeugte Guikomponente(slider,Listbox,checkbox,etc.) kann über Referenzen aufgerufen werden. Dazu gibt es mehrere Möglichkeiten. Eine Möglichkeit ist bei der Erzeugung der Guikomponente mit uicontrol die Eigenschaft 'tag' zu setzen. Hier wird ein sinnvoller name gewählt, z.B. 'ListboxDateiauswahl'. Das sieht dann etwa so aus:


Code:


uicontrol('style','Listbox','String',{'Datei1' 'Datei2' 'usw'},'tag','ListboxDateiauswahl');

 


Mit
Code:

handles=guihandles(hObject);%hObject oder Figurehandle
value = get(handles.ListboxDateiauswahl,'value');
string = get(handles.ListboxDateiauswahl, 'string');
 


bekommste dann die Dateinamen und die derzeit ausgewaehlte Datei(Value).

Bei den anderen Möglichkeiten werden die Referenzen entweder global oder als guidata gespeichert. Der Rest ist dann ähnlich.
 
wrz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2007, 18:36     Titel:
  Antworten mit Zitat      
Danke für deine Idee,aber die passt nicht so gut für mein Arbeit.Denn in jeder Ordner gibt es 20 .txt datei,und in jede datei gibt es 2*200 werten zu bearbeiten.
Hier ist die code von Listbox,da ist das pfad definiert.Wie kann ich diese pfad zu meine funktion fügen?
Code:

% --- Executes during object creation, after setting all properties.
function figure1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to figure_Druck_Reg (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

setappdata(hObject, 'StartPath', pwd);
addpath(pwd);
% --- Executes during object deletion, before destroying properties.
function figure1_DeleteFcn(hObject, eventdata, handles)
% hObject    handle to figure_Druck_Reg (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if isappdata(hObject, 'StartPath')
    rmpath(getappdata(hObject, 'StartPath'));
end
 
 
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.