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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Nils (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht lesenswert

von Nils (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

von Picardscher Facepalm (Gast)


Bewertung
0 lesenswert
nicht 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)


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

von Nils (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Es klappt einfach nicht

C = strsplit(dt,'\')

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

von Nils (Gast)


Bewertung
0 lesenswert
nicht lesenswert
C = strsplit(dt,':') meinte ich

von Picardscher Facepalm (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.