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

Buchstaben & Zahlen aus Excel übernehmen und dann prüf

 

Llinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2014, 09:48     Titel: Buchstaben & Zahlen aus Excel übernehmen und dann prüf
  Antworten mit Zitat      
Hallo Smile

Ich wäre dir tierisch dankbar, wenn du mir bitte bitte mit dem folgenden Problem helfen kannst. Ich verzweifel sonst noch Smile

Ich habe in einer Exceltabelle eine Spalte mit 8760 Zellen welche die jeweils 24 Stunden eines Tages mit dem dazugehörigen Datum representieren. z.b.
Mo 30.04.2012 1
Mo 30.04.2012 2
Mo 30.04.2012 ..
Mo 30.04.2012 24
Di 01.05.2012 1
usw.

Für bestimmte if-Bedingungen möchte ich mit Matlab einen binären Vektor erstellen.
Z.B. if, zelle i des Vektors "Mo, Di, Mi, Do, Fr" UND Stunde "9,10..20", dann soll zelle i den Wert 1 annehmen, sonst 0.

Meine Idee war, die Zellen in Zahlen zu verwandeln und dann damit die Bedingungen zu prüfen, aber mir gelingt das Importieren leider nur im cell Format, sodass ich sie nicht in double umwandeln kann.

Hast du eine Idee?

Beste Grüße, Linus.

PS: Ich bin absoluter Anfänger, also bitte bitte keine Abkürzungen und so Smile


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 02.06.2014, 10:03     Titel:
  Antworten mit Zitat      
Ich denke die Community kann und wird in solche einem Fall gerne helfen. Eine wichtige Hilfestellung ist Beispielcode (und Daten, die Excel Datei).

Meine erste Frage und Hilfestellung bezieht sich auf das XLSREAD Kommando. Es gibt ja verschiedene Rückgabeformate als CELL. Bitte mal ausprobieren:

Code:

[num,txt,raw] = xlsread(___)
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Llinus
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 02.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2014, 12:57     Titel:
  Antworten mit Zitat      
Hallo Andreas, liebe Community,

vielen Dank zunächst für die Antwort und den Tipp.

Leider erstellt xlsread genauso nur einen cell-Vektor (wie beim normalen Import).
Selbst wenn ich meine Daten "Mo 30.04.12 1 etc." in seine einzelnen Bestandteile "Mo", "30.04.12" und "1" teilen würde, würden zwar drei Matrizen erstellt, von denen aber zwei auch bloß wieder cell-Matrizen sind (mit Ausgabe ndata, text, alldata).

Das cell-Format ist im Grunde auch gar nicht schlimm, wenn ich nur wüsste, wie ich prüfen kann, ob der Inhalt der Zelle i des Vektors mit "Mo, Di, Mi etc" beginnt und mit welcher Stunde "1,2,3..24" er aufhört.

Hier das Code-Prinzip und die Exceltabelle im Anhang:

Code:
binaer=zeros(length(Datumsbeispiel_Forum),1);
 n=length(Datumsbeispiel_Forum);
 for i=1:n;
     
     if Datumsbeispiel_Forum(i)(ersten zwei Buchstaben) == 'Mo, Di, Mi, Do, Fr'
UND
Datumsbeispiel_Forum(i)(letzten zwei Zahlen == '9,10,11..20'
    binaer (i) = 1;
     else binaer(i) = 0;
     end
 end


Würde mich super doll über einen Lösungsvorschlag freuen.

Viele Grüße, Linus.

Datumsbeispiel_Forum.xls
 Beschreibung:
das ist eine Spalte mit 4 Beispieltagen (ich möchte für alle Wochentage und die Stunden 9-20 eine 1 im binaeren Ausgabevektor und eine 0 für alles andere)

Download
 Dateiname:  Datumsbeispiel_Forum.xls
 Dateigröße:  28 KB
 Heruntergeladen:  934 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 02.06.2014, 13:11     Titel:
  Antworten mit Zitat      
Gut, verstanden. Einfachstes Beipiel um alle Tellen zu finden die von einem Montag sind:

Code:

[a,b,c]=xlsread('Datumsbeispiel_Forum.xls')
strfind(b,'Mo')
 


So was?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Llinus
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 02.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2014, 23:05     Titel:
  Antworten mit Zitat      
Hallo Hallo,

will nur schnell meine Lösung posten für den Fall, dass irgendwann jemand ein ähnliches Problem haben sollte Smile

Code:
binaerFPY=zeros(length(Datum_Stunde_2012),1);
Wochentage={'Mo','Di','Mi','Do','Fr'};
Peakstunden={'9 ','10','11','12','13','14','15','16','17','18','19','20'};
for i=1:length(Datum_Stunde_2012);
if sum(strcmp(Datum_Stunde_2012(i,1:2),Wochentage)) && sum(strcmp(Datum_Stunde_2012(i,14:15),Peakstunden))    
binaerFPY(i)=1;
end
end



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