DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

abs kanal

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

 

0 Kudos
Message 1 of 15
(5,977 Views)

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

 

0 Kudos
Message 2 of 15
(5,970 Views)

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

 

0 Kudos
Message 3 of 15
(5,945 Views)

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

0 Kudos
Message 4 of 15
(5,943 Views)

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

 

0 Kudos
Message 5 of 15
(5,935 Views)

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

0 Kudos
Message 6 of 15
(5,927 Views)

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

0 Kudos
Message 7 of 15
(5,904 Views)

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

0 Kudos
Message 8 of 15
(5,899 Views)

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

0 Kudos
Message 9 of 15
(5,879 Views)

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

0 Kudos
Message 10 of 15
(5,875 Views)