Umwandlung von Minuten in Sekunden in Matlab. Wie?

Gast #5154111
Lesenswert?

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!
Angehängte Dateien:
Gast #5154142
Lesenswert?

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.
Gast #5154150
Lesenswert?

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?
Gast #5154171
Lesenswert?

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
Gast #5154172
Lesenswert?

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.
Gast #5154173
Lesenswert?

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...
Gast #5154178
Lesenswert?

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)
Gast #5154366
Lesenswert?

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?
#5154379
Lesenswert?

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
Gast #5154463
Lesenswert?

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 ?
Gast #5154893
Lesenswert?

@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?
Gast #5154903
Lesenswert?

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...
Gast #5154926
Lesenswert?

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 :-(
Gast #5154935
Lesenswert?

> 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...
#5154971
Lesenswert?

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 ;-)
Gast #5156273
Lesenswert?

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.
#5156318
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren