Español
Foro

schnelle Rutina para Durchschnittsbildung de Array gesucht

 
- Página 1 -



KHR
¡Hola miteinander,

.

Yo möchte una große Menge Meßdaten aufbereiten y luego como Kurve(n) darstellen. El Daten voluntad de uno Expediente eingelesen y Arrays zwischengelagert

Um stark flackernde Meßwerte en uno übersichtlichen Kurve darstellen a puede möchte Yo esta encima Durchschnittsbildung beruhigen Das todo se entonces en el fertigen Programa para fünf zahlenreihen ir

Bisher mache Yo el en algo así:

Lo son 5 arrays con 100 elementen Float-Variables , en beginn con 0 gefüllt

Ein Satz Meßwerte se eingelesen, Jedes Array erhält una Element eingetragen

Für cada Array se el Durchschnitt ermittelt,

el jeweiligen Punkte voluntad geplottet

y más es con el nächsten Datensatz Meßwerte.

Desde que bisher el Durchschnitt con mientras que-wend Schleifen errechne, se alles unendlich langsam. Selbst con Profano2cpp dauert lo Minuten a el Schirm vollgekritzelt es.

Hier veces una bastante corto Auszug el Daten como ellos vorliegen. Real haben el Archivos oft encima zehn- oder gar zwanzigtausend Datensätze (Zeilen)

25.07.2007;08:22:53;1874;63.3;0.019387;0.023140;0.024151;0.022312;-----;-----
25.07.2007;08:22:54;1871;63.3;0.028538;0.022725;0.025337;0.022793;-----;-----
25.07.2007;08:22:55;1914;63.3;0.024311;0.023610;0.022366;0.022739;-----;-----
25.07.2007;08:22:56;1889;63.3;0.021887;0.023453;0.019952;0.022303;-----;-----
25.07.2007;08:22:57;1895;63.3;0.027712;0.023644;0.021144;0.022193;-----;-----
25.07.2007;08:22:58;1902;63.3;0.023383;0.023765;0.022752;0.022195;-----;-----
25.07.2007;08:22:59;1891;63.3;0.026178;0.023538;0.022319;0.022224;-----;-----
25.07.2007;08:23:00;1912;63.3;0.024255;0.023965;0.021904;0.022195;-----;-----
25.07.2007;08:23:01;1898;63.3;0.021041;0.023673;0.024442;0.022237;-----;-----
25.07.2007;08:23:02;1895;63.3;0.024243;0.023550;0.022202;0.022322;-----;-----
25.07.2007;08:23:03;1919;63.3;0.029875;0.023874;0.022494;0.022521;-----;-----
25.07.2007;08:23:04;1930;63.3;0.027768;0.024126;0.022018;0.022461;-----;-----
25.07.2007;08:23:05;1914;63.3;0.020411;0.023905;0.020469;0.022334;-----;-----
25.07.2007;08:23:06;1915;63.3;0.027465;0.023837;0.023016;0.022474;-----;-----
25.07.2007;08:23:07;1924;63.3;0.020727;0.023959;0.023631;0.022536;-----;-----
25.07.2007;08:23:08;1891;63.3;0.020876;0.023436;0.021933;0.022374;-----;-----
25.07.2007;08:23:09;1867;63.3;0.020627;0.023159;0.020591;0.022087;-----;-----
....
El ersten beiden Spalten Datum y Tiempo son uninteressant, sólo danach gehts correcto los.

Vor lauter Frust encima mi Ideenlosigkeit tener Yo el reciente Codes gelöscht
Sombrero como alguien ne Concepto, como así qué más rápido ir podría??

Bin sólo desafortunadamente doch kein Programmierer pero sólo una Profano-Wurschtler.
 
Gruß
Karl-Heinz
WIN XP home/Pro / XPROFAN 11 / P2CPP
ATMEL + BASCOM Fan
03.06.2008  
 



 
- Página 2 -



Thomas
Freier
@Franco, entonces spende uns pero por favor el Mittelwert-Función uno Spalte (max., min. y Summe haben wir sí ya). Und si posible una Función, el el número el con Werten gefüllten Items uno Spalte ermittelt.
 
Gruß Thomas
Windows XP SP2, XProfan X2
04.06.2008  
 



Hier el Source para Bild...

Beinhaltet una Función createHPicByStats(data$,xx,yy) y liefert una Bildhandle el Statistik zurück. El Ausgabegrösse kann por Pixel xx y yy eingestellt voluntad. Mit el Función puede ser auch a Laufzeit por String solch una Diagramm erzeugen. Im Titel es el número el benötigten Millisekunden.

Orginalcode: [...] 

Ohne xpse
KompilierenMarcaSeparación
WINDOW 100,100 - 700,500
CLS $888888
var TME&=&GETTICKCOUNT
var HPIC&=CREATEHPICBYSTATS(FILE_GET_CONTENTS(fme-300-test.txt),600,420)
SETTEXT %HWND,STR$(&GETTICKCOUNT-TME&)+ ms
DRAWPIC HPIC&,10,10;0
USERMESSAGES $0014

WHILE 1

    WAITINPUT

ENDWHILE

end

proc CREATEHPICBYSTATS

    PARAMETERS S$,XX&,YY&
    DECLARE LN$[],HDR$[],ENTI$[]
    LN$[]=EXPLODE(S$+
    ,
    )
    var C&=SIZEOF(LN$[])
    HDR$[]=EXPLODE(LN$[0],;)
    var HDRC&=SIZEOF(HDR$[])
    var F!=0
    var F2!=0
    DECLARE VMIN![HDRC&],VMAX![HDRC&],V![HDRC&,C&],VMM![HDRC&],COL&[IF(HDRC&>7,HDRC&,8)],COLB&[HDRC&],OLDF![HDRC&]
    MAT VMIN![]=999999999999999
    MAT VMAX![]=-999999999999999
    DEC HDRC&
    DEC C&
    COL&[0]=$FF0000
    COL&[1]=$00FF00
    COL&[2]=$0000FF
    COL&[3]=$880000
    COL&[4]=$008800
    COL&[5]=$000088
    COL&[6]=$FF8800
    COL&[7]=$00FF88
    var CL&=0

    WHILE 1

        INC CL&

        IFNOT CL&<C&

            BREAK

        ENDIF

        ENTI$[]=EXPLODE(LN$[CL&],;)
        SETSIZE ENTI$[],HDRC&+1

        WHILELOOP 0,HDRC&

            F!=VAL(ENTI$[&LOOP])
            V![&LOOP,CL&]=F!

            IF VMIN![&LOOP]>F!

                VMIN![&LOOP]=F!

            ENDIF

            IF VMAX![&LOOP]<F!

                VMAX![&LOOP]=F!

            ENDIF

        ENDWHILE

    ENDWHILE

    var I&=0
    var A!=0

    WHILELOOP 0,HDRC&

        VMM![&LOOP]=(VMAX![&LOOP]-VMIN![&LOOP])
        A!=V![&LOOP,1]
        F!=VMM![&LOOP]

        IF F!=0

            CONTINUE

        ENDIF

        F2!=A!-VMIN![&LOOP]

        IF F2!=0

            CONTINUE

        ENDIF

        OLDF![&LOOP]=(F2!/F!*YY&)

    ENDWHILE

    var Y!=0
    var HOP!=C&/XX&
    var XH!=1
    var YYHOP!=YY&*0.1
    var X&=0
    var HPIC&=CREATE(hNewPic,XX&,YY&,$FFFFFF)
    STARTPAINT HPIC&

    WHILE 1

        INC X&

        WHILELOOP 0,HDRC&

            F!=VMM![&LOOP]

            IFNOT F!=0

                F2!=V![&LOOP,XH!]-VMIN![&LOOP]

                IFNOT F2!=0

                    F!=(OLDF![&LOOP]*0.9)+(F2!/F!*YYHOP!)

                ELSE

                    F!=(OLDF![&LOOP]*0.9)

                ENDIF

                USEPEN 0,0,COL&[&LOOP]
                LINE (X&-1),(YY&-OLDF![&LOOP]) - (X&),(YY&-F!)
                OLDF![&LOOP]=F!

            ENDIF

        ENDWHILE

        XH!=XH!+HOP!

        IF XH!>C&

            BREAK

        ENDIF

    ENDWHILE

    ENDPAINT
    RETURN HPIC&

endproc

proc FILE_GET_CONTENTS

    PARAMETERS FLE$
    var B&=FILESIZE(FLE$)

    IF B&<1

        RETURN

    ENDIF

    DECLARE MEM#
    DIM MEM#,B&
    var R&=BLOCKREAD(FLE$,MEM#,0,B&)
    var S$=CHAR$(MEM#,0,R&)
    DISPOSE MEM#
    RETURN S$

endproc

proc FILE_PUT_CONTENTS

    PARAMETERS FLE$,S$
    var L&=LEN(S$)

    IF L&=0

        var FH&=ASSIGN(FLE$)
        REWRITE FH&
        CLOSE FH&
        ASSIGN FH&,
        RETURN

    ENDIF

    DECLARE MEM#
    DIM MEM#,L&+1
    STRING MEM#,0=S$
    BLOCKWRITE FLE$,MEM#,0,L&
    DISPOSE MEM#

endproc

proc RGB.MIX

    PARAMETERS COL1&,COL2&,TRANSL!
    RETURN RGB(GETRVALUE(COL1&)*(1-TRANSL!)+GETRVALUE(COL2&)*(TRANSL!),GETGVALUE(COL1&)*(1-TRANSL!)+GETGVALUE(COL2&)*(TRANSL!),GETBVALUE(COL1&)*(1-TRANSL!)+GETBVALUE(COL2&)*(<
TRANSL!)) ENDPROC end

Wenn Yo ahora bedenke el esta Método auch Spalte 1 y Spalte 2 mitberechnet (aber hier no Pagar findet) entonces podría Yo vorstellen, dass con kleiner Optimierung a diesem Punkt tal vez incluso 4 a 5 en lugar de 6,8 Sekunden erreicht voluntad puede.

@KHR: Como largo benötigt el Algo para el komplette Expediente?

17 kB
Hochgeladen:04.06.2008
Ladeanzahl169
Descargar
913 kB
Hochgeladen:04.06.2008
Ladeanzahl175
Descargar
1.020 kB
Hochgeladen:04.06.2008
Ladeanzahl125
Descargar
 
04.06.2008  
 



He typisch - en mi Notebook con 2,4GHz incluso sólo 6.2 Sekunden, en lugar de como mi DesktopPC con 3,2 GhZ 6.8 Sekunden. Sombrero todavía alguien nen 486dx4/100 herumzugammeln?
 
05.06.2008  
 




Thomas
Freier
Ein rápidamente zusammengestrickter Test una doWhile- Bucle es auch no gerade langsam (hier sólo para 4 Reihen con Mittelwert/sec y una *.dbf) .

856 kB
Hochgeladen:05.06.2008
Ladeanzahl107
Descargar
6 kB
Hochgeladen:05.06.2008
Ladeanzahl153
Descargar
6 kB
Hochgeladen:05.06.2008
Ladeanzahl139
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.06.2008  
 



Lo sieht así de como si Usted el Skalen no normalisierst - bekommst el todavía fix instalado?

Und para una Performancevergleich wäre lo imho nötig todos 10 Spalten a beachten. (Das macht mein Ejemplo auch, obwohl lo en Datum y Tiempo natürlich sólo 0 evaluiert y nutzt.)

Also Skalen normalisieren (x y y) y todos Spalten beachten y luego: Dauer preisgeben para Codeperformancevergleich.
 
05.06.2008  
 




Thomas
Freier
@IF: de Zeitgründen Yo lo en 6 Werten belassen. El Hauptzeit se beim Erstellen el *.dbf verbraten. Hier wäre una Vergleich para Listview oder GridBoxen todavía interessant. El Skalierung, si yo ellos correcto hinbekommen habe, kostet ca. 300ms en uno Endzeit de 3734 ms.
Auf mi Rechner mentira beide Anwendungen sicher en gleicher Höhe, si la más 4 Werte dazu kommen.

324 kB
Hochgeladen:05.06.2008
Ladeanzahl89
Descargar
16 kB
Hochgeladen:05.06.2008
Ladeanzahl222
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.06.2008  
 



Hm, algo stimmt no con el Normalisierung - el muss automáticamente determinado voluntad para jede Spalte separat. Por ejemplo hast Es usted un schwarze Linie en el Mitte, el es sozuagen no el todo Y-Spektrum adecuado. Un Umrechnung a uno einstellbaren Ausgabegröße fehlt como auch todavía drin. ^ ^
 
05.06.2008  
 




Thomas
Freier
@ IF: el schwarze Linie Es el Temperatur (en fme-300-test.txt es max=64.8° - min=63.9°) . En meiner Skalierung entspricht 1° = 13.9 Punkte. Más Ausschlag kommt como no fuera. Seine Temperaturanzeige va de 44° a 80°. Como hilft sólo una filigranere Grafik como en dir. War pero no mein Ziel .
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.06.2008  
 



Yo sah grad el Yo oben el falschen Code Nuevo hatte, el fue un Vorversion.

Der Orginalcode bajo [...]  war/es sin embargo el richtige.

Yo habe el sin xpse-Code oben korrigiert - ahora stimmts con Exe y Screenshot überein.

KHR hätte lo auffallen necesario.
 
06.06.2008  
 



 
- Página 3 -



KHR
¡Hola miteinander,

zuerst veces vielen Dank para Eure Mühe y sorry, Yo toter Mann speile.

Yo bin momentan beruflich unterwegs y habe por ungünstige Umstände sólo muy begrentzen Zugang para Internet y a mi Notebokk, como lo dauernd a el Anlage uno Kunden hängt y eifrig Daten mitschreiben muß

Yo melde mich otra vez, si yo otra vez Normalzustand habe.

Dankeschön y schöne Grüße
 
Gruß
Karl-Heinz
WIN XP home/Pro / XPROFAN 11 / P2CPP
ATMEL + BASCOM Fan
09.06.2008  
 




Thomas
Freier
Hmm IF, irgendwie son el Kurven de showdata2.exe no nachvollziehbar.

595 kB
Hochgeladen:11.06.2008
Ladeanzahl89
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
11.06.2008  
 



Sombrero Su Dateianhang algo con ShowData2.Exe a tun? (Weil me no así scheint...)

Bezüglich no nachvollziehbar - inwiefern?

El su erzeugten Kurven [...]  .
 
11.06.2008  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.805 Views

Untitledvor 0 min.
H.Brill24.04.2023
Jörg Sellmeyer30.05.2018
iF06.11.2014
Michael Wodrich26.02.2014
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie