Forum: PC-Programmierung Umwandlung von Minuten in Sekunden in Matlab. Wie?


von Nils (Gast)


Angehängte Dateien:

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!

von Susi (Gast)


Lesenswert?


von Nils (Gast)


Lesenswert?

Hallo,

leider verstehe ich nicht wirklich was ich mit 2),3) und 4) machen soll?

von Picardscher Facepalm (Gast)


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.

von Picardscher Facepalm (Gast)


Lesenswert?

Sag mal,
- WIEOFT pro Datenzeile hast Du strsplit() angewendet?
- und mit WIEVIELEN Parametern?

von Nils (Gast)


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?

von cpt. riker (Gast)


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

von Susi (Gast)


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.

von Picardscher Facepalm (Gast)


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...

von Picardscher Facepalm (Gast)


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)

von Nils (Gast)


Lesenswert?

Es klappt einfach nicht

C = strsplit(dt,'\')

dt ist mein Vector z.B
00:01
00:02
....
....

von Nils (Gast)


Lesenswert?

C = strsplit(dt,':') meinte ich

von Picardscher Facepalm (Gast)


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?

von Patrick J. (ho-bit-hun-ter)


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

von Nils (Gast)


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 ?

von Jan (Gast)


Lesenswert?

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.

von Picardscher Facepalm (Gast)


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?

von Picardscher Facepalm (Gast)


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...

von Der Andere (Gast)


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 :-(

von Picardscher Facepalm (Gast)


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...

von R. M. (n_a_n)


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 ;-)

: Bearbeitet durch User
von Nils (Gast)


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.

von Patrick J. (ho-bit-hun-ter)


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.

: Bearbeitet durch User
von T.roll (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.