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 import mit vielen Tabellen - Variablennamen ?

 

Schlippi
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2013, 16:48     Titel: Excel import mit vielen Tabellen - Variablennamen ?
  Antworten mit Zitat      
Hallo Matlab-Fans,

hiermit schreibe ich meinen ersten Post in diesem Forum, und habe auch direkt eine Frage:

Ich würde gerne eine Excel-Datei bestehend aus über 40 Tabellenblätter in Matlab laden und hätte gerne jede Tabelle als einzelne Variable. Mit
Code:

blabla = xlsread('bla.xls',3);
 

ist das so auch kein Problem. Das ganze in Verbindung mit einer Schleife ist auch kein Problem. Aber ist es irgendwie möglich, dass die Variablen den Namen der Tabellen von Excel bekommen? Mit
Code:

[status,sheets,format] = xlsfinfo('bla.xls')
 

bekomme ich in sheets alle Tabellennamen der Excel Tabelle angezeigt. Aber wie schaffe ich es jetzt, dass die Variablen mit diesen Tabellennamen erstellt werden?

Ich hoffe ihr könnt mir weiter helfen.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2013, 18:47     Titel:
  Antworten mit Zitat      
Hallo,

40 verschiedene Variablen dürfte unübersichtlich werden. Eine Struktur halte ich für besser:
Code:
for I = 1:numel(sheets)
data.(sheets{I}) = xlsread('bla.xls',sheets{I});
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schlippi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2013, 19:09     Titel:
  Antworten mit Zitat      
Danke für die schnelle Hilfe. Funktioniert bedingt, da die Tabellennamen mit einer Zahl beginnen. Ich habe aber auch während meiner weiteren Programmierung gemerkt, dass ich besser dynamische Variablennamen über eine Schleife vergebe.

Unübersichtlichkeit ist echt ein Problem, da ich 2 von diesen Dateien importieren muss. Insgesamt dann 94 Variablen. Das mit der Struktur ist ein guter Tipp. Den werde ich mal weiter Verfolgen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

kann man die Zahlen auch weglassen (d.h. sind die Namen der Tabellenblätter ansonsten eindeutig)? Sind es immer gleich viele Ziffern?
Eine andere Möglichkeit wäre natürlich, etwas wie 'sheet' vorne dran zu setzen.

Auch wenn du Variablen haben willst, können deren Namen nicht mit Zahlen anfangen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schlippi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.06.2013, 15:16     Titel:
  Antworten mit Zitat      
Ich hätte nochmal ein Frage. Ich habe jetzt wieder angefangern an dem Matlab-Programm zu arbeiten, und müsste wissen, wie ich dynamisch erstellte Variablen auch dynamisch bentzen kann.

Genauere Erklärung:
Ich habe die besagte Excel-Datei mit den 48 Tabellen. Diese 48 Tabellen lade ich jetzt mit Hilfe einer for-Schleife in Matlab und erstelle für jede Tabelle eine Variable mit Fortlaufendem Namen (bla1, bla2, usw).
Mein Ziel ist es eine GUI zu erstellen, in der man über mehrere Dropdown-Menus etwas auswählt, und sich aus dieser Auswahl ein Wert berechnen.
z.B.:
Code:

Erg = bla(Wert aus Dropdown-Menu 1) + bla(Wert aus Dropdown-Menu 2)
 

Wie ich auf die Dropdown-Menus zugreife und diese benutze ist kein Problem. Das Problem für mich ist nur wie ich aus dem Zahlenwert des Dropdown-Menus auf die Variablen mit fortlaufendem Namen zugreife.

Ich hoffe ihr könnt mir noch einmal helfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.06.2013, 19:29     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Diese 48 Tabellen lade ich jetzt mit Hilfe einer for-Schleife in Matlab und erstelle für jede Tabelle eine Variable mit Fortlaufendem Namen (bla1, bla2, usw).

Die Empfehlung war, genau das nicht zu tun, weil es sehr unübersichtlich wird. Wenn die Namen der Blätter nicht mit in den Variablennamen auftauchen müssen, wäre es wesentlich sinnvoller, ein Cell Array bla zu erstellen mit
Code:
for I = 1:...
bla{I} = [Einlesen I-tes Blatt];
end

Darauf kannst du dann bequem zugreifen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schlippi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2013, 11:35     Titel:
  Antworten mit Zitat      
Ach sooo, ich hab ja mal wieder viel zu kompliziert gedacht.

Dein Vorschlag ist genau das was ich gebraucht habe. Vielen Dank. Funktioniert super.
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.