06-29-2007 08:15 AM
hallo kollegen,
diadem ermöglicht nur die berechnung des absolutwertes von einer zahl.
ich soll aber den absolutwert eines kanals berechnen. Wie mache ich es?
im taschenrechner geht es nicht...
Danke im voraus,
a6a
06-29-2007 08:57 AM
Hallo a6a
Doch der Taschenrechner ermöglich das. Gerade Kanalberechnungen sind DIAdems Stärken.
ch("Abs")=Abs(Ch("[1]/Time")) wenn Sie die VBS-Syntax im Taschenrechner benutzen (ab Version 10.1)
ch("Abs"):=Abs(Ch("[1]/Time")) für die AUT-Syntax
Um die Syntax im Script zu benutzen, zeichnen Sie die Berechnung am besten auf. Es ist etwas kompliziert mit den vielen Anführungzeichen.
Winfried
07-02-2007 06:44 AM
Hallo winner,
danke für den Tipp. Hat sehr geholfen!
Wie erzeuge ich einen neuen Kanal,
der die Daten aus einem gemessenen Kanal nur dann übernimmt,
wenn eine Bedingung (wenn der dritte Kanal >100 ist) eintrifft.
Eigentlich einfach:
if Ch("in")>100 then Ch("out_new")=Ch("out")
bekomme aber eine Fehlermeldung von Diadem.
Vielen dank für deine Hilfe,
a6a
07-02-2007 07:23 AM
In der Hilfe gibt es dazu eine passende Vorgehensweise: Suchen Sie bespielsweise im Index unter "Ausreißer, Eliminieren". In Version 10.2 sähe die Lösung so aus:
Ch("Group2/Result") = Ch("Group1/Input")+CTNV(Ch("Group1/Input")<100)
Dabei werden alle Werte die kleiner als 100 sind durch Novalues ersetzt. Die Novalues wiederum können Sie durch die Funktion "Novalues bearbeiten (ChnNovHandle) löschen.
Ich hoffe das hilft weiter
Winfried
07-02-2007 08:47 AM
hi winner,
es funktioniert, danke.
leider ist es keine schöne lösung bei mehreren bedingungen. 😞
ich dachte, mit einer if…then anweisung
könnte ich alle bedingugnen abfragen und einen resultierenden kanal erzeugen.
Danke noch mal.
a6a
07-02-2007 09:08 AM - edited 07-02-2007 09:08 AM
Hi a6a
ersten geht das auch mit mehren Bedingungen. Bei folgender Formel bleiben alle Werte zwischen 10 und 50 übrig.:
Ch("Group2/Result") = Ch("Group1/Input")+CTNV(Ch("Group1/Input")>50 OR Ch("Group1/Input")<10)
Man kann natürlich auch eine Schleife über alle Werte machen. Das ist aber langsamer als mit der Formel
for I = 1 to ChnPropValGet("[1]/Kanal", "length")
If CHDX("[1]/Kanal") > 10 then
CHD (I,"/Result") = CHDX(I,"[1]/Kanal")
Else
' ...
End If
Winfried
Message Edited by winner on 07-02-2007 04:18 PM
07-03-2007 06:04 AM
hi winner,
habe vielen dank für deine hilfe. J
noch eine klitze kleine frage:
welche fkt berechnet die anzahl von gleichen werten eines kanals?
ciao for now,
a6a
07-03-2007 06:28 AM
Hallo a6a
Es gibt keine eingebaute Funktion in DIAdem dafür. Ich würde den Kanal erst sortieren (Befehl ChnMultipleSort) und dann auf zwei aufeinander folgende Werte auf Gleichheit überprüfen. Verwenden Sie aber besser die Funktion ValEqual statt der "="-Funktion, da so nur die signifikanten Stellen der Zahlen verglichen werden. Je nach Rauschen ist vielleicht auch ein Vergleich der Differenz zu einem Epsilon-Wert sinnvoll.
Winfried
07-04-2007 08:23 AM
Hallo Winfried,
da habe ich eine 3d Grafik in 3d Achsensystem von oben dargestellt. Dabei möchte ich in der Legende die Farben (z-Achse) erklären. Es ist aber nicht in der Legende -> Eigenschaften drin.
Gruß, a6a
07-04-2007 09:03 AM - edited 07-04-2007 09:03 AM
Hallo a6a
Wollen Sie einfach eine Farblegende darstellen, wie in dem angehängten Bild?
Winfried
Message Edited by winner on 07-04-2007 04:06 PM