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

textscan mit multiselect, dateiimport

 

Thagarum
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 21.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2009, 22:09     Titel: textscan mit multiselect, dateiimport
  Antworten mit Zitat      
Guten Abend,

ich muß zunächst sagen, dass ich ein absoluter MATLAB Anfänger bin.
So nun zu meinem Problem: Ich möchte gerne meine Versuchsauswertungen mit MATLAB erledigen scheitere aber momentan schon am Einlesen meiner *.txt files.

Der Code zum Einlesen einer Datei (hier aus dem Forum) funktioniert soweit. Sobald ich aber versuche den Code mit einer for-Schleife und Multiselect auf mehrere Dateien anwendbar zu machen scheitere ich.


Code:

[filename, path] = uigetfile('*txt','Bitte Datei auswählen');
fid=fopen(fullfile(path,filename), 'r');
measurement= textscan(fid,'','headerlines', 3);
fclose(fid)
 


Wahrscheinlich ist mein Ansatz noch an mehreren Stellen falsch und mir ist prinzipiell auch nicht klar wie ich der textscan funktion den index zu übergeben habe (fid{j} macht ja irgendwie keinen Sinn):

Code:

[filename, path] = uigetfile('*txt','Bitte Datei auswählen','Multiselect','on');

for j = 1:length(filename)
    fid=fopen(fullfile(path,filename{j}),'r');
    messung= textscan{fid,'','headerlines',3};
    fclose(fid)
end
 


Ist wahrscheinlich eine banales Problem, ich freue mich aber über jede Hilfe.

Viele Grüße
Mike
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 22.06.2009, 08:26     Titel: Re: textscan mit multiselect, dateiimport
  Antworten mit Zitat      
Moin,

Thagarum hat Folgendes geschrieben:
Ist wahrscheinlich eine banales Problem, ich freue mich aber über jede Hilfe.

Ja, das stimmt Wink

Thagarum hat Folgendes geschrieben:
Code:
[filename, path] = uigetfile('*txt','Bitte Datei auswählen','Multiselect','on');

for j = 1:length(filename)
    fid=fopen(fullfile(path,filename{j}),'r');
    messung= textscan{fid,'','headerlines',3};
    fclose(fid)
end

Der Code ist schon richtig, nur musst du Matlab auch die Möglichkeit geben die Werte auf unterschiedlichen oder in einer Variablen abzuspeichern. Im Moment speicherst du alles auf einer ab, die bei jedem Schleifendurchlauf überschrieben wird.

Ich würde vorschlagen du änderst den Code so:
Code:
[filename, path] = uigetfile('*txt','Bitte Datei auswählen','Multiselect','on');
messung = cell(1,numel(filename));
for k = 1:numel(filename)
    fid=fopen(fullfile(path,filename{k}),'r');
    messung{k} = textscan(fid,'','headerlines',3); % hier müssen natürlich runde Klammern stehen, da textscan eine Funktion und kein Cell-Array ist
    fclose(fid)
end


Allerdings musst du aufpassen, dieser Code funktioniert nur, wenn du auch wirklich mehrere Dateien auswählst.

Gruß
Alex

PS: Vermeide "i" und "j" als Variablen, da diese von Matlab intern als komplexe Zahl verwendet werden.
_________________

>> 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?

Zuletzt bearbeitet von steve am 22.06.2009, 12:43, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Thagarum
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 21.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2009, 10:09     Titel:
  Antworten mit Zitat      
Das nenne ich eine prompte Antwort, vielen Dank ich werde gleichmal damit rumspielen und versuchen den Code nachzuvollziehen.


Leider läuft der Code nicht durch:

??? Undefined variable "textscan" or class "textscan".

Das ist mir bei meinen Versuche auch öfter begegnet.
Ich habe einfach Deinen Code kopiert und eingefügt und auch zwei dateien ausgewählt, daran liegt es also nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Thagarum
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 21.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2009, 12:40     Titel:
  Antworten mit Zitat      
Fehler gefunden, textscan möchte runde statt geschweiften Klammern.

Danke nochmal damit kann ich jetzt schonmal arbeiten.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 22.06.2009, 12:42     Titel:
  Antworten mit Zitat      
ups, da hab ich gar nicht drauf geachtet. Ja Funktionen bekommen IMMER runde Klammern.

Ich hab den Code oben angepasst.
_________________

>> 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
 
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.