Hallo, ich habe bereits mein Anliegen in einem Matlab Forum gestellt, jedoch ohne brauchbares Ergebnis. Deswegen versuche ich es hier, in der Hoffnung auf eine Lösung. http://www.gomatlab.de/viewtopic,p,179188.html#179188 Was brauche ich: Ich habe einen zeitlichen Temperaturverlauf(siehe Anhang). Die x-Achse gibt die Zeit in min an z.B 00:09 min. Ich brauche allerdings die Werte in Sekunden, also z.B 1:15 min -> 75 sek. Weiß jemand, wie ich das machen kann? Danke!
1. https://de.mathworks.com/help/matlab/ref/strsplit.html 2. https://de.mathworks.com/help/matlab/ref/str2num.html 3. * 4. +
Hallo, leider verstehe ich nicht wirklich was ich mit 2),3) und 4) machen soll?
Nils schrieb: > Hallo, > > leider verstehe ich nicht wirklich was ich mit 2),3) und 4) machen soll? Zurück in die Grundschule und nochmal ein paar Runden über Umrechnungen von Zeitangaben nachdenken. Schliesslich ist 1) der einzige Schritt der nicht in der Grundschule durchgenommen wird.
Sag mal, - WIEOFT pro Datenzeile hast Du strsplit() angewendet? - und mit WIEVIELEN Parametern?
Picardscher Facepalm schrieb: > Nils schrieb: >> Hallo, >> >> leider verstehe ich nicht wirklich was ich mit 2),3) und 4) machen soll? > > Zurück in die Grundschule und nochmal ein paar Runden über > Umrechnungen von Zeitangaben nachdenken. > Schliesslich ist 1) der einzige Schritt der nicht in der Grundschule > durchgenommen wird. Was hat das Programmieren mit der Grundschule zu tun. Ich kenne mich mit Matlab schlecht aus und so einfach ist es dann nicht es zu verstehen. Picardscher Facepalm schrieb: > Sag mal, > - WIEOFT pro Datenzeile hast Du strsplit() angewendet? > - und mit WIEVIELEN Parametern? Wie kommst du drauf, dass ich strsplit() angewendet habe?
Nils schrieb: > Picardscher Facepalm schrieb: >> Sag mal, >> - WIEOFT pro Datenzeile hast Du strsplit() angewendet? >> - und mit WIEVIELEN Parametern? > > Wie kommst du drauf, dass ich strsplit() angewendet habe? cpt. picard meinte mit seinem beitrag, dass du strspilt und str2num anwenden sollst, das war keine frage. wenn man die links öffnet, dann steht da sehr genau, was die funktionen machen wenn man sie wie aufruft. der rest ist dann grundschulmathematik
Mit 1. holst du dir die Strings der Minuten und Sekunden. Mit 2. wandelst du diese Strings in Zahlenwerte um. Mit 3. Multiplizierst du den Zahlenwert der Minuten mit 60 (60 Sekunden = 1 Minute) und mit 4. Addierst du den Zahlenwert der Sekunden mit dem Ergebnis von 3. Fertig.
Nils schrieb: > Picardscher Facepalm schrieb: >> Nils schrieb: >>> Hallo, >>> >>> leider verstehe ich nicht wirklich was ich mit 2),3) und 4) machen soll? >> >> Zurück in die Grundschule und nochmal ein paar Runden über >> Umrechnungen von Zeitangaben nachdenken. >> Schliesslich ist 1) der einzige Schritt der nicht in der Grundschule >> durchgenommen wird. > > Was hat das Programmieren mit der Grundschule zu tun. Ich kenne mich mit > Matlab schlecht aus und so einfach ist es dann nicht es zu verstehen. > > Picardscher Facepalm schrieb: >> Sag mal, >> - WIEOFT pro Datenzeile hast Du strsplit() angewendet? >> - und mit WIEVIELEN Parametern? > > Wie kommst du drauf, dass ich strsplit() angewendet habe? Weil Du verstehst was mit jenem Schritt gemeint ist UND Du selbstverständlich Eigeninitiative an den Tag legst? Du kannst Dich aber auch gegen Hilfestellung (meine Kontrollfragen) sträuben, anstelle von Antworten und Deine eigene Vorleistung zu zeigen...
Susi schrieb: > Mit 1. holst du dir die Strings der Minuten und Sekunden. <cite truth="fakenews"> ...aber da bekomme ich nur den Temperaturwert und den Reststring. Damit kann man ja nicht Rechnen! mimimimimi! </cite> "Bitte vor Betätigung des Tippwerks Grundschule besuchen." (gilt nicht f. Susi)
Es klappt einfach nicht C = strsplit(dt,'\') dt ist mein Vector z.B 00:01 00:02 .... ....
Nils schrieb: > Es klappt einfach nicht > > C = strsplit(dt,':') > > dt ist mein Vector z.B > 00:01 > 00:02 > .... > .... Überlege nochmal ganz scharf was bei diesem strsplit()-Aufruf geschieht. Überlege nochmal ganz scharf was Du eigentlich benötigst. Lese nochmals genau die oben verlinkte Beschreibung zu strsplit(): - was soll die Funktion BEKOMMEN zum trennen? - was wird sie ZURÜCKGEBEN?
Hi Lässt Du Dir auch anzeigen, was Du da auseinander schnippelst? Könnte mir vorstellen, daß Du 1. am Leerzeichen trennst 2. am Doppelpunkt trennst 3. den jetzt abgetrennten Wert mal 60 nimmst 4. zu dem Wert des Reststring addierst Wie Du nun diese Sekunden an Deine Temperatur geklebt bekommst - anderes Thema, dürfte es aber auch eine Funktion mit 'str' im Namen geben. MfG
Ich komme ja noch nicht mal dazu irgendwas auseinander zu schnippeln. Ich brauch offensichtlich einen String Array, den ich nicht habe. Selbst, wenn ich nur die Min. rausschneiden würde, würde ich keine Sek. über 59 erhalten Patrick J. schrieb: > Hi > > Lässt Du Dir auch anzeigen, was Du da auseinander schnippelst? > > Könnte mir vorstellen, daß Du > 1. am Leerzeichen trennst > 2. am Doppelpunkt trennst > 3. den jetzt abgetrennten Wert mal 60 nimmst > 4. zu dem Wert des Reststring addierst > > Wie Du nun diese Sekunden an Deine Temperatur geklebt bekommst - anderes > Thema, dürfte es aber auch eine Funktion mit 'str' im Namen geben. > > MfG 1. welches Leerzeichen? 3. mal 60 ?
Eigentlich braucht ihr gar nix an Strings rumschnippeln. Seit Matlab 2016a oder so gibt es den datetime datentyp, siehe https://de.mathworks.com/help/matlab/ref/datetime.html. readtable() und co können damit auch umgehen. Hast du deine Zahlen erstmal in dem Datentyp, kannst du mit seconds(), hours(), days() usw usf die gewünschten Werte berechnen lassen.
@Jan: ja klar! Aber hier stinken Fragestellung und Dialogführung des TO seit Anfang zum Himmel; und zwar danach dass es an systematischer, schrittweiser Herangehensweise fehlt. Auch genaues lesen und verstehen der Hilfetexte zu den Funktionen (s.o.g. Verweise und meine Kontrollfragen zu Parameter + Rückgabewerte) scheint nicht zu klappen. Selbständige Suche im Matlab Hilfesystem geschieht ja seitens TO auch nicht... Ich lüfte nun ein Geheimnis: ich hatte noch gar nie (und auch jetzt nicht) Matlab in den Finger... Trotzdem (so meine ich) verstehe ich vor welchem "Berg"/Verständnisproblem der TO sich gerade befindet. Ob der Lösungsweg nun mit spezialisierten gebrauchsfertigen Funktionen geschieht oder über Zwischenschritte strsplit()/str2num()/60*/+ geschieht dünkt mich (noch) irrelevant, resp. kann in aufbauenden Schritte zwecks Speedup genutzt werden. M.M.n. ist sich der TO nicht im klaren über Datenvektor <=> Charvektor und worauf welche Funktion wie zu wirken hat. Ausserdem: im Kontext von "Umwandlung Minuten in Sekunden" ist die Rückfrage "mal 60 ?" doch wohl klar unter Niveau - ja?
Nils schrieb: > Ich komme ja noch nicht mal dazu irgendwas auseinander zu schnippeln. > Ich brauch offensichtlich einen String Array, den ich nicht habe. Du hast also keine Zahlen (weil mit was Du hast, Du nicht Rechnen kannst). Was hast Du dann? > Selbst, wenn ich nur die Min. rausschneiden würde, würde ich keine Sek. > über 59 erhalten Es gilt eben nicht die Minuten "rauszuschneiden"/wegzuwerfen, sondern um *"Umwandlung von Minuten in Sekunden..."* Wie würdest Du dies mit Bleistift auf Papier angehen? (wieder der Hinweis auf die Grundschule) > 1. welches Leerzeichen? > 3. mal 60 ? Na, klingelts bald? Hinweis: die Quintessenz von "Programmieren" ist "einen Plan haben". Ich bin immernoch der Meinung dass genau "Plan haben" hier noch nicht ist...
Picardscher Facepalm schrieb: > Hinweis: die Quintessenz von "Programmieren" ist "einen Plan haben". > Ich bin immernoch der Meinung dass genau "Plan haben" hier noch nicht > ist... Nils will nicht programmieren lernen, er will "copy and paste" machen. So funktioniert das heute, spätestens seit zu Guttenberg es salonfähig gemacht hat :-(
> Nils will nicht programmieren lernen, er will "copy and paste" machen. Bekommt der kleine Niels aus diesem Forum aber erst nach bestandener Aufnahmeprüfung. > So funktioniert das heute, spätestens seit zu Guttenberg es salonfähig > gemacht hat :-( Man bekommt dafür -s. Guttenberg- aber nur ein Doggtorwisch, nicht ein funktionierendes Programm...
Leider habe ich nur octave zur Verfügung, aber ich denke MatLab verhält sich hier genauso. Vermutlich hat der TO nur dieses obige Textfile zur Verfügung und beim Einlesen mit T = load("-ASCII","Temperaturverlauf.txt"); bekommt er eine 965 x 2 Matrix T = 25.25000 0.00000 25.25000 0.00000 25.31000 0.00000 25.31000 0.00000 25.31000 0.00000 25.37000 0.00000 25.44000 0.00000 25.44000 0.00000 25.50000 0.00000 25.50000 0.00000 25.56000 0.00000 25.56000 0.00000 usw bei der das 2. Element nach dem : ignoriert wird. Auf die Schnelle fällt mir nur [T, t] = textread("Temp.txt","%f %s"); wobei t allerdings von der Klasse cell ist und evtl. mit den obigen str - Funktionen weiterbearbeitet werden kann. P.S. sehe gerade in MatLab gibt es readtable(). Damit sollte sich das Textfile korrekt lesen lassen. Naja, octave ist eben doch nicht ganz MatLab ;-)
:
Bearbeitet durch User
Der Andere schrieb: > Picardscher Facepalm schrieb: >> Hinweis: die Quintessenz von "Programmieren" ist "einen Plan haben". >> Ich bin immernoch der Meinung dass genau "Plan haben" hier noch nicht >> ist... > > Nils will nicht programmieren lernen, er will "copy and paste" machen. > So funktioniert das heute, spätestens seit zu Guttenberg es salonfähig > gemacht hat :-( So sieht es aus! Wenn mich jemand nach "Wo Arbeitsamt" fragt und die Sprache nicht versteht, dann bringe ich ihn zum Arbeitsmarkt, anstatt zu sagen, lern erst mal deusch Habe es anders gelöst, aber warum es so kompliziert erklärt wurde, bleibt mir ein rätsel.
Hi Wenn Du jetzt noch Dein 'anders' hier präsentierst, sehen wir, daß Du was gelernt hast/es selbst gemacht hast und Andere, Die vll. ebenfalls ein solches Problem haben, können von Dir lernen. Wie sieht's aus? Selber was geschafft, oder doch nur vom Nachbarn abgeschrieben? MfG PS: Ich erwarte eigentlich jetzt nicht wirklich einen Post, wie Du Das gelöst hast - im Gegenteil: Das würde mich sogar extrem wundern/positiv überraschen. Es ist Jemandem mehr geholfen, wenn Ihm das Angeln beigebracht wird, als im einen Fisch zu geben, damit Er heute satt wird.
:
Bearbeitet durch User
Nils schrieb: > Wenn mich jemand nach "Wo Arbeitsamt" fragt und die Sprache nicht > versteht, dann bringe ich ihn zum Arbeitsmarkt, Oh wie nett. Das freut mich. Ähm. Ich stehe hier in Berlin. Wo ist München? Danke für die Fahrt!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.