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

Einlesen von Dateien- Auswerten und in Excelform bringen

 

zyklon
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 18.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2011, 22:06     Titel: Einlesen von Dateien- Auswerten und in Excelform bringen
  Antworten mit Zitat      
Hallo liebe ForumUser,
Da ich gerade an meiner Bachelorthesis schreibe, brauche ich unbedingt einen Tipp aus euren Reihen.

Ich muss viele Dateien in Matlab einlesen, die zuvor von meinem Betreuer erstellt worden sind. Mein Stand ist:

-Ich kann die Dateien mit dlmread einlesen. und mit
liste=dir('*QMO*') der Reihe nach abarbeiten


-Ich bin soweit, dass ich die Umformungen in Matlab durchführen kann (einfache Mittelung einer Messwertereihe)

- Ich kann einen Vektor mit den errechneten Werten über eine Schleife aufbauen

Aber jetzt:

Wie kann ich nun eine Excel Tabelle erstellen, in der in der linken Spalte der jeweilige Dateiname steht und in der rechten der dazugehörige Wert.



Bisher habe ich jeden Einzelwert in eine eigene Datei mit dlmwrite geschrieben und per Hand(!) in Excel eingefügt.



liste=dir('*QMO*');
for i=1:length(liste);
name=liste(i).name;
namenteil=name(5:30);
datei=dlmread([liste(i).name],'\t',4,0);
qmo=datei(:,2);%Liest die 2. Spalte mit den QMO Werten ein ein.


flaeche=mean(qmo);

flaeche10D=mean(qmo(1:1033));

dateiliste(i)='namenteil' % <-Dieser Abschnitt funktioniert nicht ich wollte nun alle Vektoren zu einer Matrix zusammenfügen und in eine Datei schreiben.
flaecheliste(i,1)=flaeche
flaeche10Dliste(i,1)=flaeche10
end
Gesamt[dateiliste flaechenliste flaeche10Dliste]
end
Private Nachricht senden Benutzer-Profile anzeigen


hurzt
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 07.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2011, 22:57     Titel:
  Antworten mit Zitat      
Hallo,

in Rahmen eines wesentlich größeren projekts muss ich ebenfalls eine xls auslesen und beschreiben, zwischendurch natürlich die daten bearbeiten. In laufe der Zeit hab ich mitgekriegt das es sehr viele Befehle gibt mit der man xls beschreiben, sogar beinah nach belieben formatieren kann.

1.- auslesen:

Code:
  File=xlsread('D:\...\*.xls');


dann ist der inhalt der xls in form einer Matrix auf gespeichert, wo man dann die einzelnen cells aufrufen kann. Nehmen wir mal an, das es eine 3x3 Matrix ist und die willst den eintrag in der ersten zeile in der zweiten sspalte haben (in der xls also B1), dann kannst du diese mit:

Code:
File(1,2)=


aufrufen.

2.- schreiben:

willst du eine (nicht zwangsläufig existierende) xls beschreiben, wäre der einfachste weg:

Code:
xlswrite('D:\...\*.xls',variable, 'A1')


anstatt der variablen kannst du natürlich auch ein string nehmen, auch die kann man variieren lassen. Um eine schleife da rüber zu legen muss man ein wenig tricksen.
Ich bin mal so frei und verrat dir das mal Wink

Code:

for x=1:23;
 P=horzcat('A',num2str(x));
 Pos=horzcat(char(P),':',char(P));
xlswrite('D:\...\*.xls', variable ,char(Pos))
end


in diesen beispiel würdest du dann A1 bis A23 mit deiner variablen vollschreiben.
sicher werden sich dann bei dir die werte ändern, dann musst du natürlich auch entsprechend - optimalerweise die gleiche - laufvariable rüber legen.

ein andere Variante eine existierende Datei zu beschreiben ist:

Code:

exl=actxserver('Excel.Application');
exl.visible=0;
workbooks=exl.Workbooks;
workbook=invoke(workbooks,'Open','D:\...\*.xls');
sheets=exl.ActiveWorkbook.Sheets;
sheet1=get(sheets,'Item',1);
invoke(sheet1,'Activate');
activesheet=exl.Activesheet;

for x=1:23
P=horzcat('A',num2str(x));
Pos=horzcat(char(P),':',char(P));
activesheetrange = get(activesheet,'Range',char(Pos));
set(activesheetrange,'Value', variable);
end

invoke(workbook,'Save');
    invoke(exl,'Quit');
    delete(exl)
    close all
 


in diesen Beispiel wird eine variable in eine xls von A1 bis A23 eingefügt, anschließend gespeichert und geschlossen.
die Befehle hab ich irgendwann mal in den letzten Wochen - ich glaub sogar hier im forum - gefunden, ich fand die sehr hilfreich. Die Befehle auseinander nehmen und auf dein Problem anpassen musst du natürlich selbst ... meine Kenntnisse reichen leider auch nicht aus um dir alles im Detail zu erklären. Wink

Die letzten Codes verwende ich zumindest in mein Projekt. Ich hoffe nur ich hab dir nciht zu wenig kopiert ...

Wenn du dich im Netz umschaust findest du noch ganz andere Sachen, z.b. einzelnen Zellen eine Farbe verpassen, Bilder einfügen, die Schrift anpassen und ähnliches.

Ich hoffe das hilft dir weiter.

Denk immer dran, viele Wege führen nach Rom, dies sind nur 2 Möglichkeiten eine xls zu schreiben.

Grüße,
Hurtz
_________________

"der Wolf,das Lamm ... auf der grünen Wiese ... HURTZ!"
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.