Buchstaben & Zahlen aus Excel übernehmen und dann prüf
Llinus
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.06.2014, 09:48
Titel: Buchstaben & Zahlen aus Excel übernehmen und dann prüf
Hallo
Ich wäre dir tierisch dankbar, wenn du mir bitte bitte mit dem folgenden Problem helfen kannst. Ich verzweifel sonst noch
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
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)
will nur schnell meine Lösung posten für den Fall, dass irgendwann jemand ein ähnliches Problem haben sollte
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);
ifsum(strcmp(Datum_Stunde_2012(i,1:2),Wochentage)) && sum(strcmp(Datum_Stunde_2012(i,14:15),Peakstunden))
binaerFPY(i)=1;
end end
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.