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

Variable in Dateinamen

 

fleischwolf
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 12:48     Titel: Variable in Dateinamen
  Antworten mit Zitat      
Hallo,

ich bin noch recht neu auf dem Gebiet und stehe nun vor folgendem Problem:
Ich habe einen Ordner mit mehreren Dateien , diese haben alle den selben Namen, bis auf eine Zahl am Ende. Ich möchte alle Dateien einlesen, und nur eine Spalte davon speichern. Kann man soetwas in eine Schleife verpacken?
Jedoch weiß ich nicht wie ich die Variable in Dateinamen zu kennzeichnen habe und habe bisher leider auch nichts dazu gefunden. Es soll "sinngemäß" so aussehen:

clear all

for x=100:20:840

load 'C:\Users\Wolf\Desktop\josi\Josi_txt\eins\JS2a-1-heat_x.txt'


JSx=JS2a-1-heat_x(:,1)
save -ascii JSx.dat JSx
end;

Weitere Probleme die ich hab ist das in den Dateien Header vorliegen und in den Namen Sonderzeichen.

Bin leider noch etwas neu in Sachen Programmierung Embarassed ...
Private Nachricht senden Benutzer-Profile anzeigen


lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 04.08.2010, 12:54     Titel:
  Antworten mit Zitat      
Hi:)
versuch's mal damit:

Code:

load (['C:\Users\Wolf\Desktop\josi\Josi_txt\eins\JS2a-1-heat_' num2str(x) '.txt'])


 


Gruß,
Lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
fleischwolf
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 14:56     Titel:
  Antworten mit Zitat      
ok, danke.
das mit dem einlesen funktioniert.
Leider nur wenn ich bei dateien den header rausnehme.
Nun bleibt nur noch die frage wie kann man es macht das die Zeilen im Header der Dateien ignoriert werden.

Eine andere Frage ist inwieweit es möglich ist in Variablen Sonderzeichen zu haben, da in den File-Namen auch die Zeichen - und _ vorkommen.
Oder kann man gleich eine Zuordnung vornehmen, wie:
Code:

for x=1:1:5
   
 JSbsp' num2str(x) '=load (['C:\.....\eins\JSbsp' num2str(x) '.txt'])    
   
 JSbsp' num2str(x) ' =  JSbsp' num2str(x) ' (,:1)

save -ascii JSbsp' num2str(x) '.dat   JSbsp' num2str(x) '

end;


etwas funktioniert dabei noch nicht. Muss man an einigen Stellen Klammern setzen, damit er num2str(x) als Variable auffasst?
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 04.08.2010, 16:07     Titel:
  Antworten mit Zitat      
Hi:)

wenn du eine von deinen Dateien auf die Matlab Workspace rüberziehst (Drag &Drop) kommt ein User Interface. Da gibt es die Option das Importieren det Datei als m-file zu speichern ('generate m file'). Matlab erstellt dir dabei eine funktion indem du als eingabeparameter nur den Dateinamen hast. Die Option mit dem Header rauslassen kannst du dir direkt im User Interface einstellen. ich glaube so wäre es am einfachsten.
wenn das nicht klappt, sag bescheid..da gibt es auch andere varianten...

Lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
fleischwolf
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 16:48     Titel:
  Antworten mit Zitat      
Wenn ich die Dateien per Drag and Drop rüberziehe werden sie bei mir lediglich als m-file geöffnet (genau wie bei Doppelklick). Und das für alle Dateien einzeln zu machen ist ja nicht der Zweck der Sache...

Ziel ist es die Dateien im Ordner (ca. 40 je ordner) alle automatisch einzulesen, umzubenennen und zwei der sechs Spalten ohne Header zu speichern. (Da ich demnächst öfters solche Daten bekomme möchte ich nicht immer alles von Hand abändern...)
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:21     Titel:
  Antworten mit Zitat      
ja, genau... und da kannst du matlab vorgeben dass er dir die Headers rauslässt und über "generate m-file" dir das als m-file speichern lassen. dann kannst du dir das so umändern wie du das haben willst.
Hier ein Beispiel mit 3 Headerlines:

Code:

DELIMITER = ' ';
HEADERLINES = 3;

% Import the file
newData1 = importdata(fileToRead1, DELIMITER, HEADERLINES);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
dark fire
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 22.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2011, 20:15     Titel:
  Antworten mit Zitat      
Hi,

ich habe folgendes Problem, ich will Dateien mit mehreren Laufindizes abspeichern, jedoch bringt mir da num2str ein Problem.
Hier der Code
Code:

Title(' Strom 2 unsegmentiert - Position' num2str(i) ' - Antenne' num2str(j)); % Titel des Diagramms
        saveas(figure(1),'C:\Users\***\Plots\unseg_I2_Pos' num2str(i) '_Antenne' num2str(j) '.fig'); % Speicherpfad und Dateiname
 


Das erste num2str in einem Befehl wird mir rot unterstrichen und Matlab sagt mir das ic heventuell eine Klammer vergessen habe, wüsste aber nicht wo die hin sollte.

Kann mir da jemand helfen???
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2011, 21:09     Titel:
  Antworten mit Zitat      
Hallo,

Befehle wie title (sollte man im übrigen klein schreiben) und saveas erwarten, dass Titel-String oder Dateiname als ein String übergeben werden, du musst also mit [] verketten:

Code:
title([' Strom 2 unsegmentiert - Position' num2str(i) ' - Antenne' num2str(j)]); % Titel des Diagramms
        saveas(figure(1),['C:\Users\***\Plots\unseg_I2_Pos' num2str(i) '_Antenne' num2str(j) '.fig']); % Speicherpfad und Dateiname


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dark fire
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 22.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2011, 13:57     Titel:
  Antworten mit Zitat      
Danke für die schnelle Hilfe,

jetzt funktioniert es.
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.