|
|
|
|
| Zitat von RichterSkala
Nachdem die Periode die Zeit für den Durchlauf eines gesamten Zyklus ist, kannst du einfach in irgend einem der beiden Threads irgendwo im Zyklus nen Timer abfragen, der Unterschied zum letzten Durchlauf der Abfrage ist dann deine Periode.
...
Wobei es mal überhaupt keinen Sinn macht das mit zwei Threads zu machen, wer hat sich denn die Aufgabe ausgedacht?
| |
Unser wunderbar verpeilter Dozent, die Aufgaben gibt es aber schon seit ca. 10 Jahren
Das klingt schon nach ner guten Lösung, wir werdens mal versuchen!
|
|
|
|
|
|
|
Moin. Ich sitze hier gerade vor einem matlab-script das ich in octave benutze. Irgendwie hat der Programmierer aber keine Ausgabe eingebaut, sondern die Daten wohl immer per Hand extrahiert. Da ich kein matlab/octave kann, jetzt aber auch nicht eine Woche lang irgendwelche Tutorials durchmachen möchte und es mit Hilfe des Manuals nicht hinkriege:
Ich habe ein double mit der Größe 2e10 x d.
Das wird dann zum Beispiel so bearbeitet:
subtract(:,c)=data(:,c)-background(:,c); % subtraction of total background from data
Wie speichere ich das?
Dinge wie
save('blobb','substract','-ascii');
type('blobb');
und
save('blobb','substract(:,1)','-ascii');
type('blobb');
geben keine Rückmeldung.
Die Datei wird zwar angelegt, aber es steht entweder nichts drin, oder eine Zeile in der Octave stolz berichtet dass er/sie/es dieses Häufchen ganz alleine gemacht hätte.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Rootsquash am 10.01.2017 10:59]
|
|
|
|
|
|
Die Variable heisst subtract und beim Speichern sagst du "substract"?
Ansonsten kenne ich mich nicht mit Octave sondern nur mit matlab aus, aber je nachdem wie du es lesen willst kannst du es ja auch mit
csvwrite('blobb.csv', subtract) probieren. Ist ja nur eine 2-Dimensionale Matrix.
|
|
|
|
|
|
|
csvwrite('blobb.csv', subtract); funktioniert, danke
|
|
|
|
|
|
|
Verhält sich der Java Scanner unter Mac anders als unter windows?
|
Code: |
Scanner s = new Scanner(System.in);
String bla = s.nextLine();
|
|
Durch ein normales Enter unter Mac erzeuge ich nur ein Zeilenumbruch, aber kein absenden meiner Eingabe.
Durch Command+D bekomme ich vom Terminal lediglich die Info: No line found
Muss man unter Mac was bestimmtes beachten?
|
|
|
|
|
|
|
Hm, das sollte eigentlich schon funktionieren, laut meinem Verständnis. Java verwendet folgendes RegEx um ein Zeilenende beim Scanner zu finden: "\r\n|[\n\r\u2028\u2029\u0085]". Es sollte also wurscht sein, ob da am Ende ein \n oder ein \r ist (Shift + Enter bzw. Enter).
Führst du Java z.B. in der Eclipse Console (other IDEs available) oder in der Mac eigenen Console aus? Macht das einen Unterschied?
// Hab's gerade in Ubuntu getestet, da funktioniert's auch.
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von derSenner am 10.01.2017 12:39]
|
|
|
|
|
|
IntelliJ in seiner Console. Ich kanns nochmal im Mac-Terminal probieren.
Scheint ein IntelliJ Problem unter Mac zu sein. Auf Windows habe ich keine Probleme, aber auf Mac schon.
Über das Mac Terminal konnte ich Enter nutzen. Seltsam.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Lightspeed am 10.01.2017 13:26]
|
|
|
|
|
|
Liegt vermutlich daran, ob der IDE java oder javaw für die Console benutzt.
|
|
|
|
|
|
|
Was wäre denn hier die Literaturempfehlung wenn sich jemand von Restwissen Mathematikabitur von vor knapp 10 Jahren und selbst angeeignetes Zusatzwissen Richtung Z-Transformation, Filterdesign etc. aufmachen möchte?
Mich nervt das irgendwie, dass ich oft viel Zeit verliere weil mir gefühlt die vernünftige Basis für "kompliziertere" Themen in der Signalverarbeitung fehlt.
|
|
|
|
|
|
|
| Zitat von derSenner
Liegt vermutlich daran, ob der IDE java oder javaw für die Console benutzt.
| |
Sieht so aus, als ob es java nutzt.
|
|
|
|
|
|
|
| Zitat von Lightspeed
| Zitat von derSenner
Liegt vermutlich daran, ob der IDE java oder javaw für die Console benutzt.
| |
Sieht so aus, als ob es java nutzt.
| |
Ich kenne mich mit IntelliJ nicht aus, aber gibt es da eine Funktion, im das Programm im Debug Mode zu starten? Vielleicht funktioniert's dann.
// Oder einfach normal ausführen. Vielleicht macht das nen Unterschied.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von derSenner am 10.01.2017 14:35]
|
|
|
|
|
|
Meinst du mit Programm der kompilierte Code oder die IDE?
Wäre mir nämlich neu, wenn eine IDE keinen Debugger hätte.
Wenn du letzteres meinst, müsste ich gucken, ob intelliJ sowas besitzt.
Beim kompilieren des Codes spuckt die IDE das hier aus.
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Lightspeed am 10.01.2017 15:05]
|
|
|
|
|
|
Ne, aber du kannst ja vermutlich dein Programm, also deinen Code, regulär ausführen oder im Debug Mode. Vielleicht macht das nen Unterschied.
Aber wie gesagt, ich hab mit IntelliJ keine Erfahrung, vielleicht weiß da jemand anders bescheid.
Rechts oben gibt's den normalen Pfeil, und den Debugging Pfeil, zumindest nehme ich an, dass das analog zu Eclipse ist.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von derSenner am 10.01.2017 15:08]
|
|
|
|
|
|
|
|
|
|
Achso, du meinst den herkömmlichen IDE debugger. Ne, da erfahre ich auch nicht mehr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ich musste lachen und weimen.
|
|
|
|
|
|
|
Bin heute am lrz in Garching. Arbeitet da jemand von euch? Ein Kaffee müsste drin sein.
|
|
|
|
|
|
|
Ich habe zwei Leiteroperatoren und , die jeweils ein Vakuum vernichten, aber nicht das andere.
Jetzt habe ich
Ich möchte das jetzt umformen in
Mein Buch sagt nur "one can find recursively the expression of in terms of ". Für mich riecht, nein stinkt, das nach der Methode, mit der man z.B. das zeitgeordnete Exponential für die Dysonreihe definiert. (Auch: pfadgeordnete Exponentiale, o.ä.)
Nur irgendwie komme ich nicht mal sinnvoll auf einen ersten Schritt...
Hilfe? Ideen?
Yes Boo, I agree. This group could do with a swift kick in the morals.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 14.01.2017 3:12]
|
|
|
|
|
|
Ich brauche gerade mal einen Realitätscheck, entweder bin ich komplett dumm oder Python tut nicht das was ich erwarte.
Folgender Codeschnipsel (online):
|
Code: |
import re
extract_ppl = re.compile(r"ppl= (\d+\.\d+)")
contents = "0 zeroprobs, logprob= -5.91174e+06 ppl= 145.154 ppl1= 181.943"
ppl = extract_ppl.match(contents)
print(ppl) |
|
Gibt None aus, das matcht nichts. Wenn ich den Regex online teste, tut es was es soll.
Was läuft hier schief?
|
|
|
|
|
|
|
Python Doku
| Python offers two different primitive operations based on regular expressions: re.match() checks for a match only at the beginning of the string, while re.search() checks for a match anywhere in the string (this is what Perl does by default). | |
|
|
|
|
|
|
|
Ja, gerade hab ich es dann auch gefunden. Also war ich echt zu dumm
|
|
|
|
|
|
|
|
|
|
|
Eigentlich gibt es drei: match, search, fullmatch
fullmatch ist wie "^(re hier)$".
match ist wie "^(re hier)".
search ist wie "(re hier".
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 14.01.2017 15:29]
|
|
|
|
|
|
| Zitat von MCignaz
Ich hab mir mal flüchtig Boost.Fiber angeguckt und dadurch von Userland-"Threads" erfahren.
Auf der Arbeit wird bislang ausschließlich mit Threads (C++) gearbeitet. Ich hab die simple Anwendung, an der ich mitarbeite mal im Debug pausiert und geschaut, wie viele das sind. Ergebnis: Um die 50.
Kann man sagen, dass in einer idealtypischen Welt der Prozess so viele Threads benutzt, wie Prozessorkerne vorhanden sind und den Rest dann über Fibers regelt? Also die Threads launchen jeweils Fibers...
| |
Kann mir da jemand ein bisschen was zu erlaeutern, dem die Frage nicht wie rats zu doof war?
|
|
|
|
|
|
|
Die Frage ist ja gar nicht doof, meine Antwort war auch durchaus ernst gemeint. Es ist schlicht unmöglich zu sagen, wie viele Threads jetzt richtig sind, weil man Threads für viele unterschiedliche Dinge benutzen kann [1] und es selbst in einfachen Fällen überraschende Wechselwirkungen gibt (z.B. kann es sein, dass bei CPU-lastigen Sachen eine ungerade Zahl von Threads besser ist als eine gerade Zahl ... warum auch immer).
Wer konsistent benchmarkt, hat recht.
[1] Manchmal sind das auch einfach API-Sachen. Z.B. bietet eine bestimmte API nur blockenden Zugriff auf ein Objekt, wenn man jetzt auf mehrere Objekte zugreifen will, kann man da nicht viel anderes tun als mehrere Threads zu benutzen -- hier ist das Ziel aber gar nicht schneller zu sein, oder irgendwie parallel zu arbeiten, sondern man umschifft nur API-Probleme.
Oder man macht IO in Backgrounds-Threads (weil asynchroner Disk-IO in allen Betriebssystemen nicht richtig funktioniert), dann hängt das nicht mehr von der CPU ab, sondern von Treibern und Hardware, was da die "richtige" Anzahl ist.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 14.01.2017 16:54]
|
|
|
|
|
|
Moin,
Crosspost weil ich nicht so genau weiß, wer mir helfen kann. Ich suche eine Gartner-Studie mit dem Namen "Critical Capabilities for Object Storage". Die verlinkte Version ist von 2016, es gibt seit einigen Tagen eine überarbeitete Version vom Januar 2017.
Hat da zufällig jemand Zugriff? Das wäre absolut großartig.
|
|
|
|
|
|
|
Statistikfrage:
Betrachtet werden die beiden Zufallsvariablen Y= 2x²+1 und Z=2X+Y
1. Bestimmen Sie die Wahrscheinlichkeitsfunktion von Y.
2. Berechnen Sie auf Basis der Wahrscheinlichkeitsfunktion die Varianz von Y.
Wie geht das?
|
|
|
|
|
|
|
Was ist X?
Ich empfehle Googlesuche nach "transformation of random variable" und einfach mal durchklicken, was deinem Wissensstand etwa entspricht. Ist ein Klassiker in jeder Einführungsvorlesung, dazu findest du richtig viel.
/Sorry für die etwas nutzlose Antwort, vielleicht finde ich morgen mehr Muße. Aber der Suchbegriff hilft ja vielleicht schon?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Irdorath am 16.01.2017 21:34]
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XX ( Der XX(X)-Thread. ) |