-
FlexPro
- Auf einen Blick
- Features & Optionen
- Einsatzgebiete
- Alle Vorteile
- Neu in FlexPro 2021
- FlexPro gratis testen
- FlexPro View OEM Freeware
- Kaufberatung
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
- Produkte
- News
- Support
- Unternehmen
- Jobs
- Kontakt
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
Speeding up running average calculations
Home > Community > Automation and VBA > Speeding up running average calculations
- Dieses Thema hat 3 Antworten sowie 2 Teilnehmer und wurde zuletzt vor vor 20 Jahren, 9 Monaten von norbert.bakkers@lr.org aktualisiert.
-
AutorBeiträge
-
Februar 18, 2004 um 8:53 pm Uhr #12439norbert.bakkers@lr.orgTeilnehmer
During execution of a programme, the running average of a dataset seems to take a very long time to calculate.
I first tried to get the code to program a running average by recording a macro and to use it in a modified form in my own code. The problem is that I can record it but I can not execute the macro. It crashes on the line that sets the ‘Interval width’ => ‘WindowSize’.
This is the recorded macro:
ActiveDatabase.ActiveFolder.Object(“Mean”).Select False
ActiveDatabase.ActiveFolder.Object(“Mean”).Select
ActiveDatabase.SelectedObject.WindowSize = 500
Application.UpdateAllTherefore I use the following formula:
.Formula = “Mean(‘DataSet’ ,MEAN_ARITHMETIC + CALC_RUNNING, 500)”This works but is very slow for bigger datasets, especially if the averaging window is big. Is there any way of speeding up this process?
Februar 18, 2004 um 11:57 pm Uhr #8734Bernhard KantzTeilnehmerThe macro stops with an error because the generated code is not correct. We will remove this issue. The correct code should be:
ActiveDatabase.SelectedObject.SmoothingWidth = 500
An alternative to the mean function is the smooth function respectively the Signal Smoothing Analysis Object. This method uses a faster linear algorithm.
The result ofMean('DataSet' ,MEAN_ARITHMETIC + CALC_RUNNING, 501)"
and
Smooth('DataSet' ,250)"
is similar.
When the smoothing is calculated, there are insufficient left and right neighbours available for the first or last SmoothingWidth values in DataSet. Unlike the mean function these values are then equated to the first or last value in DataSet.Refer to the online help for more information.
Februar 19, 2004 um 2:10 am Uhr #8735norbert.bakkers@lr.orgTeilnehmerThanks.
Using the Smooth function instead of the running average function speeds the process up by almost a factor of 10 !!Februar 19, 2004 um 2:20 am Uhr #8120norbert.bakkers@lr.orgTeilnehmerDuring execution of a programme, the running average of a dataset seems to take a very long time to calculate.
I first tried to get the code to program a running average by recording a macro and to use it in a modified form in my own code. The problem is that I can record it but I can not execute the macro. It crashes on the line that sets the ‘Interval width’ => ‘WindowSize’.
This is the recorded macro:
ActiveDatabase.ActiveFolder.Object(“Mean”).Select False
ActiveDatabase.ActiveFolder.Object(“Mean”).Select
ActiveDatabase.SelectedObject.WindowSize = 500
Application.UpdateAllTherefore I use the following formula:
.Formula = “Mean(‘DataSet’ ,MEAN_ARITHMETIC + CALC_RUNNING, 500)”This works but is very slow for bigger datasets, especially if the averaging window is big. Is there any way of speeding up this process?
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.