cwbe coordinatez:
101
63540
2076399
856608
2725970

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::1
show[ 2 | 3] flat


Nie som programator, tak sa na vas obraciam s takymto problemom/ dilemou:

Pracujem na vytvoreni Kalmanovho filtra. Je to rekurzivny filter, co znamena, ze na analyzu merani potrebuje posledne odhadnute hodnoty a nove meranie na update odhadu + nejake charakteristiky. Tolko teorie.
Mojou ulohou je aplikovat toto na siet stanic poskytujucich informacie.

format zapisu je momentalne takyto

# supnem sem aj definiciu stanice
* STATION 1 1 S
STANICA1


# a teraz nejaka matica

* PHI 3 3 F
a b c
d e f
g h i


kde * oznacuje novu/dalsiu premennu, dalej je nazov premennej, dalej jej rozmery a typ (v tomto pripade float), v dalsich riadkoch su podla rozmerov zadane hodnoty, v tomto pripade matice PHI. Takto su zapisane vsetky premenne pre vsetky stanice z poslednej epochy.

Ja tieto udaje nacitam do slovnika a vyzera to potom asi takto:
last {station1: {prem1: x, prem2: y, ...}, station2: {prem1: x, ...}}

Efektnejsie by to asi bolo pomocou objektov, resp. tried (jednoducho, "aby tam boli bodky" :) ), napr.

last = nacitaj_udaje()
last.stations()
- vypise stanice z poslednej epochy
last.sta('STANICA1').phi - obsahuje maticu PHI pre STANICA1.

mne sa vsak paci, ak nemusim definovat nieco ako:
ak tam je 'PHI' tak phi = nieco
ak tam je 'ESTIMATE' tak estimate = nieco ... ,

ale pouzivam nazvy premennych tak ako ich precitam zo suboru:
last['STANICA1']['PHI']
(teraz ma napada aj last.sta('STANICA1').param('PHI'), ale pride mi to dost krkolomne.. i ked az taky rozdiel v tom nie je, ked tak na to pozeram :))

vyhodou triedy by bolo tiez, ze vnutri triedy by mohli prebehnut vypocty/transformacie a von by sa dostalo len nieco pomocou vhodnej funkcie:
last.sta('STANICA1').deltas() by napriklad vypisalo transformovane suradnicove rozdiely)

co by sa vam viac pacilo, alebo ako by ste to riesili vy?
nie je problem s vnorenymi triedami? a ako ich mam vytvorit? (skusal som to, ale nejde mi to)
bolo by vhodne na definovanie premennych __dict__ ? (nerozumiem ako to funguje :))

co vy na to?

(ak som sa nejasne vyjadril, tak mi dajte vediet a ja to skusim blizsie specifikovat ;) )




000001010006354002076399008566080272597002726607
mimmon
 mimmon      01.11.2006 - 00:37:44 (modif: 01.11.2006 - 00:51:53), level: 1, UP   NEW !!CONTENT CHANGED!!
k tym vnorenym triedam (dufam, ze to pojde nejak, alebo ze mi niekto poradi ako inak to vyriesit)

class coords:

     def __init__(self, slovnik):
         self.crd = slovnik

     def stations(self):
         return self.crd.keys()

     def epoch(self,epocha):
         a = {}
         for station in self.crd.keys():
             if epocha in self.crd[station].keys():
             a[station] = self.crd[station][epocha]
         return a

# a dalej by som chcel aby sa vytvorila podtrieda
     class sta:
         def __init(st, station):
             st.c = crd[station]

# a tu sa objavuje problem ako odlisit hornu triedu of podtriedy (self,st?), aby som iba raz zadal slovnik s informaciami a mohol pouzivat asi takto:
cord = coords(read_coords(projekt))
cord.stations()
- vypise vsetky stanice zucatnujuce sa v tejto epoche

a dalej

cord.sta('STANICA').epochs() - vypise vsetky epochy pre danu stanicu
--------------
upd.
tak som to vyriesil bez podtriedy (lebo uz sa mi to viac nechcelo skumat)

     def station_epochs(self,station):
         if station in self.crd.keys():
             return self.crd.keys()
         else:
         return []