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

Excel-Sheets einlesen und plotten mit schleifen

 

DieterDerWilde
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 28.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2018, 19:04     Titel: Excel-Sheets einlesen und plotten mit schleifen
  Antworten mit Zitat      
Hallo, ich hab gerade erst angefangen mich mit Matlab zu beschäftigen und bin deswegen noch sehr unerfahren.

Meine Aufgabe ist es aus einer Exceldatei mit mehreren Tabellen die Werte auszulesen und in einzelne Grafiken zu plotten.
Die Excelfiles haben unterschiedliche Anzahl an Tabellen und in den einzelnen Tabellen sind mehrere Spalten die geplottet werden sollen.

Z.B. Sheet1 soll Spalte 1 (x1) mit Spalte 2 (y1) plotten. Spalte 3 (x2) mit Spalte 4(y2) plotten und so weiter bis alle Spalten eingelesen und geplottet wurden.
Mithilfe der Schleife sollen alle Tabellen und alle Werte eingelesen und geplottet werden.
Das Problem ist, dass mehrere Exceldatein eingelesen werden und immer unterschiedliche Anzahlen an Tabellen haben.


Mein bisheriger Code ohne Schleife sieht wie folgt aus:

Code:

%Durchsuchen und Öffnen der Excel-Datei%
[xlsxfile] = uigetfile('*.xlsx');
%Einlesen der Daten aus Sheet1
[sheet1] = xlsread(fullfile(xlsxfile), 'sheet1');
%Einlesen der Daten aus Sheet2
[sheet2] = xlsread(fullfile(xlsxfile), 'sheet2');


%Einteilen der eingelesenen Excel-Datei in mehrere Vektoren (Sheet1)%
s1x1=sheet1(:,1);
s1y1=sheet1(:,2);
s1x2=sheet1(:,3);
s1y2=sheet1(:,4);
 
s2x1=sheet2(:,1);
s2y1=sheet2(:,2);
s2x2=sheet2(:,3);
s2y2=sheet2(:,4);
 
%Werte aus Sheet1 in Figure1 plotten%
figure(1)
plot(s1x1,s1y1,s1x2,s1y2)
%Werte aus Sheet2 in Figure2 plotten%
figure(2)
plot(s2x1,s2y1,s2x2,s2y2)
 


Das ist nur eine kürzere Version des Skripts.

Mein erster Versuch einer Schleife zu erstellen sieht so aus :

Code:

%Durchsuchen und Öffnen der Excel-Datei%
[xlsxfile] = uigetfile('*.xlsx');
[~,sheets] = xlsfinfo(xlsxfile)
n = length(sheets);
 
for k = 1:n
    %Einlesen der Daten Sheet1%
    [sheet{k}] = xlsread(fullfile(xlsxfile), 'sheet1');
    %Einlesen der Daten für Sheet2%
    [sheet{k}]  = xlsread(fullfile(xlsxfile), 'sheet2');
   
end
 


Jedoch liegt der Fehler bei der Variablenerstellung der einzelnen Scheet's.
Gibt es einen Weg wie bei jedem weiteren Schritt eine neue Matrix erstellt wird für jedes Sheet?

Ich danke für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 29.10.2018, 08:33     Titel:
  Antworten mit Zitat      
Hi,

Zitat:
Jedoch liegt der Fehler bei der Variablenerstellung der einzelnen Scheet's.


Was meinst du denn genau damit? Wo genau kommt der Fehler? Welche Fehlermeldung bekommst du oder was stimmt nicht?

Bei deiner Schleife kannst du die Sheets mit sprintf durchnummerieren lassen, wenn du schon "k" als Schleifenindex benutzt. Dadurch musst du nicht alle Sheets explizit ausschreiben (vor allem wenn du ja eine unterschiedliche Anzahl an Sheets hast ist das vllt hilfreich).
Code:

sheet{k} = xlsread(fullfile(xlsxfile), sprintf('sheet%i',k));
 


Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) 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.