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

Liste mit FileNames und Werten+Abspeichern der Liste

 

Kai_W
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 26.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2020, 22:38     Titel: Liste mit FileNames und Werten+Abspeichern der Liste
  Antworten mit Zitat      
Hey Leute,
ich bin ein absoluter Matlab neuling und habe eine vermutlich sehr einfach Frage an euch. Ich habe bereits gelesen, dass es nicht gut funktioniert, wenn man Zahlen und FileNames in eine Matrix schreiben will.

Ich habe einen Ordner mit einigen Textdateien welche ich alle einlese, und jeweils das Maximum bestimme. Folgendes will ich noch hinbekommen:

Eine Tabelle oder Matrix in welcher in der 1.Spalte die FileNames der txt. Dateien stehen und in der 2. Spalte die dazugehörigen Maximas.
Diese Tabelle/Matrix dann als txt. log. oder am besten csv. Datei abspeichern, sodass ich sie leicht in excel öffnen kann.


momentan schreibe ich die Maximas einfach untereinander in eine 1xN Matrix aber die FileNames dazu fehlen noch.

Ich weiß es gibt einige erklärungen im Netz das problem mit Table oder cells zu lösen, allerdings komme ich dennoch nicht weiter.

Code:
function Dateiauswahl
% IMPORTFILE(FILETOREAD1)

% [FileName,PathName] = uigetfile ('*.*');
% fileToRead1 = sprintf('%s%s', PathName, FileName);

directory = uigetdir('C:\Users\Kai\Desktop\Testdateien');  

[files] = dir([directory '/*.log']);
N =  length(files);
Maxima=zeros(1,N); % preallocation der Maxima Matrix

for ind=1:N
    FileName = files(ind).name;
    fileToRead1 = [ directory '\' FileName];
   
    rawData1 = importdata(fileToRead1);

    Daten_new = 1000/0.414 * rawData1 (1:15468); % umrechnen der Daten

    Maximum = max(Daten_new); % Maximalwert bestimmen
    Maxima(1,ind)=Maximum; % Maximalwerte in Maxima Matrix hineinschreiben
   
end

end


Vielen Dank für die hoffentlich kommende Hilfe Smile

Lg Kai
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.01.2020, 23:20     Titel:
  Antworten mit Zitat      
Hallo,

vor der Schleife:
Code:
fileList = cell(1,N);

in der Schleife:
Code:
fileList{ind} = fileToRead1;

nach der Schleife:
Code:
T = table(fileList', Maxima');
writetable(T, 'file.csv')


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 26.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2020, 00:02     Titel:
  Antworten mit Zitat      
Vielen Dank Harald! Smile hat ganz gut geklappt. wenn ich die tabelle als txt. abspeicher und etwas umständlich in excel öffne passt alles.

Als csv. Datei sind allerdings Name + Wert in einer Zelle, kann man das noch irgendwie ändern?

so sieht es jetzt aus:

Var1,Var2
104312_test_01.log,3280.53804347826
104447_test_02.log,3784.45108695652
104524_test_02.log,3797.71195652174
105157_test_03.log,3810.97282608696
105228_test_04.log,3784.45108695652
105323_test_05.log,3784.45108695652

hab versucht einen delimiter ',' zu setzen aber das hat auch noch nichts gebracht.

LG Kai
........
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.01.2020, 00:25     Titel:
  Antworten mit Zitat      
Hallo,

für das deutsche Excel und vielleicht noch schönere Überschriften:
Code:
writetable(T, 'file.csv', 'Delimiter', ';', 'VariableNames', {'Datei', 'Maximum'})
 

... oder du schreibst gleich .xlsx raus.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 26.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2020, 00:29     Titel:
  Antworten mit Zitat      
oh... wie peinlich von mir .csv und .xlsx Dateien zu vertauschen...

Vielen Dank für die schnelle Rückmeldung! Hat alles super geklappt Smile

LG Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai_W
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 26.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2020, 11:39     Titel:
  Antworten mit Zitat      
jetzt muss ich leider noch einmal nachfragen...

die Funktion table() wird leider erst ab Matlab R2013b unterstützt...
auf meinem Rechner ist eine neuere Version.
Allerdings muss das ganze auf der Arbeit funktionieren, wo mit R2010a
gearbeitet wird...

gibt es einen Ersatz für die Funktion?

LG Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.01.2020, 11:50     Titel:
  Antworten mit Zitat      
Hallo,

z.B. xlswrite oder fprintf, ist aber mühsamer.
Aber ernsthaft? R2010a?? Das ist schon seeeehr veraltet. Da sollte man schon mal einen Versionswechsel erwägen...

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