FUNCTION GET_SAMPLE, n, m ;=============================================================================== ; (c) 1992 - khd c/o FU BERLIN. A l l r i g h t s r e s e r v e d. || ; ** No part of this software package may be reproduced, transmitted, || ; 1993 transcribed, stored in a retrieval system, or translated into || ; any form by any means without the w r i t t e n permission of || ; Karl-Heinz Dittberner-FU BERLIN, Arnimallee 22, D-1000 Berlin 33 || ;=============================================================================== ; PRO:GET_SAMPLE.PRO K.-H. Dittberner - 16.APR.1992 ; V 01.5 P 476/39 - 5.NOV.1992 ; ; IDL(V2.1)-Routine: Ziehen einer zufaelligen Stichprobe (z.B. von EEG- ; Potentialen), die bestimmten Kriterien genuegt. ; ; n = Umfang der Stichprobe (sample). ; m = Gesamtzahl der Moeglichkeiten. ; ; HINWEISE: * ; ; KEYWORDS: Keine. ; ; Quelle: Do-it-yourself! Merkposten: o * ; C92 250 o ; o ; Aufruf: x=Get_Sample(n_vpn, n_cat*n_vpn) o ; z.B.: 16 64 o ; o ;=============================================================================== ; Aenderungen: [16/4/92-khd] => V 01.1: ; - Aufgrund der Vortests mit Mathematica angefertigt. ; [7/5/92-khd] => V 01.2: ; - Aus AVE_EEG.PRO (P476/37) abgespalten. ; [23/7/92-khd] => V 01.3: ; - Berechnung von q von m/n auf das allgemein gueltigere n*n/m ; umgestellt sowie Einfuehrung von p fuer den Abbruch. ; [28/7/92-khd] => V 01.4: ; - Aufruf von HISTOGRAM ag. des manchmal auftretenden Fehlers ; "Illegal binsize or max/min" modifiziert bzgl. Min/Max. ; [5/11/92-khd] => V 01.5: ; - Modifikation der Where-Abfrage nach der Gleichverteilung: ; (h eq q) => (h eq q) or (h eq q+1) = Quasi-Gleichverteilung! ;=============================================================================== ; 1. Prolog, Variablen und Konstanten: ;=============================================================================== ; On_Error, 2 p = m/n ; z.B.: 64/16=4 q = n*n/m ; z.B.: 16*16/64=4 ; ;=============================================================================== ; 2. Ziehung mit Pruefung der Gleichverteilung des 2. Index: ;=============================================================================== ; Repeat Begin index = Lotto(n,m,seed,/CUT) ; Neues IDL-Programm; siehe P476/35. h = Histogram(index(*,1), Min=0, Max=p-1) t = Where( (h eq q) or (h eq q+1), count) ; Quasi-Gleichverteilung ? EndRep Until (count eq p) ; 2. Index ist gleichverteilt. ; ;=============================================================================== ; 3. Schluss: ;=============================================================================== ; Ende: Return, index ; 2D-Feld mit Indizes: ; index(*,0) enthaelt n Indizes [0..n-1]. ; index(*,1) enthaelt n Indizes [0..q-1]. ; Aus diesen koennen im Hauptprogramm die Ordnungsnummern END ; der Potentiale ermittelt werden. ;===============================================================================