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-Tabelle als Vektoren einlesen Überschriften=Vektornam

 

Osterwma
Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 01.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2015, 11:37     Titel: Excel-Tabelle als Vektoren einlesen Überschriften=Vektornam
  Antworten mit Zitat      
Hallo Zusammen,

könnt ihr mir helfen, wie ich xls-Tabellen wie folgt in Matlab einlesen kann:

Die Tabelle hat mehrere Spalten mit 1141 Zeilen.
In Zeile 1 stehen Text-Überschriften, darunter nur Zahlen.

Jede Spalte soll nun als 1x1140 double Vektor abgespeichert werden. Der Name des Vektors, soll die jeweilige Überschrift aus Zeile 1 sein.

Wie müsste ich das programmieren?

Vielen Dank im Voraus.

Grüße

Martin
Private Nachricht senden Benutzer-Profile anzeigen


Osterwma
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 01.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2015, 18:15     Titel:
  Antworten mit Zitat      
Hallo Zusammen,

ich hab in der Zwischenzeit mal ein bisschen rumprobiert, wobei folgendes rausgekommen ist:
Code:
[nums, txt] = xlsread('Vorgabe.xls');
for n = 1:5;
eval(['Ueberschrift_' num2str(n) ' = nums(1:1440,n);']);        
end;


Leider weiß ich immer noch nicht, wie ich die Vektoren anstatt mit Überschrift_1, Überschrift_2, usw. bezeichne, nun als Namen die Spaltenüberschrift geben kann, also was in A1, B1, C1 usw. in Excel steht...

Kann mir jemand weiterhelfen?

Vielen Dank im Voraus.

Grüße

Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

eval etc. sollte möglichst vermieden werden.
Für diese Aufgabe sind Tables (ab R2013b) bzw. Dataset Array (Statistics Toolbox wie geschaffen.
Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 01.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2015, 19:16     Titel:
  Antworten mit Zitat      
Hi Harald,

kann ich soweit nachvollziehen.

Allerdings werd ich nicht schlau draus, wie ich aus der eingelesenen Tabelle dann wieder einzelne Vektoren für meinen Workspace machen kann, welche jeweils wie die "column headings" heißen.

Wenn ich beispielsweise die angehängte xls Datei über readtable einlese, muss ich den dann wieder in einzelne Variablen/Vektoren zerlegen ( a = ... , b=..., ...), sodass ich am Ende 8 eigenständige Variablen im Workspace habe.

Wie würde das in diesem Fall aussehen?

Grüße

Martin

Vorgabe.xls
 Beschreibung:

Download
 Dateiname:  Vorgabe.xls
 Dateigröße:  140 KB
 Heruntergeladen:  395 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.01.2015, 21:35     Titel:
  Antworten mit Zitat      
Hallo,

warum willst du denn unbedingt eigenständige Variablen mit diesen Namen haben? Meiner Erfahrung nach bringt es nur Nachteile, Dateninformationen in Variablennamen abzuspeichern.

Aus dem Table kannst du jederzeit mit
Code:
data.(Spalte)

beliebige Spalten herausholen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 01.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2015, 12:19     Titel:
  Antworten mit Zitat      
Hi Harald,

danke für deine Hilfe.

du erinnerst dich bestimmt noch an meine PV-Simulation.

Jetzt simuliere ich hier einzelne Elektrogeräte, um den Gesamtstromverbrauch in einem Haus zu simulieren.

In dem Excel Sheet wird über die Binärvariable vorgegeben, wann ein Gerät an und aus sein soll.

Die einzelnen Geräte will ich jetzt in einem Schwung in Matlab einlesen, um dann die einzelnen Geräte in Funktionen einbinden zu können und dann zu plotten. Daher wollte ich einzelne Vektoren für jedes Gerät haben und nicht eine große Tabelle.

Viele Grüße

Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 19.01.2015, 12:39     Titel:
  Antworten mit Zitat      
das meinte er glaube ich

also für dich

Signal= data(:,1)
zum Beispiel

dmit hast du den vektor für dein signalgeber
Private Nachricht senden Benutzer-Profile anzeigen
 
Osterwma
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 01.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2015, 12:50     Titel:
  Antworten mit Zitat      
Hi KEH,

Genau, das funktioniert auch soweit ganz gut Smile

Ich hatte nur gehofft, dass es irgendwie möglich ist, den Variablen-Namen ( also in deinem Beispiel "Signal"), automatisch nach dem obersten Eintrag im Table zu benennen.

Grüße

Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.01.2015, 13:10     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
du erinnerst dich bestimmt noch an meine PV-Simulation.

Nein, leider nicht, da ich hier zu den verschiedensten Themen Beiträge schreibe.

Zitat:
Die einzelnen Geräte will ich jetzt in einem Schwung in Matlab einlesen, um dann die einzelnen Geräte in Funktionen einbinden zu können und dann zu plotten.

Das ist mit meinem Ansatz problemlos möglich, indem du
Code:
data.[i]Signal[/i]

an die Funktionen übergibst.

Wenn Signal eine String-Variable ist, gibt es zudem die Möglichkeit, das dynamisch auszuwerten
Code:
data.(Signal)


Wenn du mit eval arbeitest, ändern sich die vorhandenen Variablen ja dynamisch in Abhängigkeit von der gewählten Excel-Tabelle. Das ist automatisiert sehr schwer zu verarbeiten, während es mit meinem Vorschlag relativ leicht ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 20.01.2015, 14:05     Titel:
  Antworten mit Zitat      
Blöder einwurf?

Mit dem Import Tool legst du doch den Variablenname (automatisch) fest in dem du angibst in welcher Zeile dieser in der Tabelle steht
wenn du das als Funktion machst ist das natürlich im Programm dann hinfällig aber würdest du das Als Script schreiben wäre es "automatisiert"

Bitte korrigiert ruhig =D
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wie gesagt: es ist über eval möglich, das automatisch zu machen (und genau das wird der aus dem Import Tool generierte Code auch tun).
Ich meine aber, dass man sich damit ins Knie schießt, und ich möchte nicht den Weg dafür liefern.

Grüße,
Harald
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.