Verfasst am: 28.10.2018, 18:04
Titel: Excel-Sheets einlesen und plotten mit schleifen
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);
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');
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?
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).
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Einstellungen und Berechtigungen
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
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.