Zdravo,
Sicer dvomim, da se je veliko forumašev tu že srečalo z 4-parametrično rainflow metodo, ampak kar meni dela težave je bolj programerske narave.
Torej ta metoda se uporablja za izločevanje obremenitvenih ciklov iz zgodovine obremenitev, ki je praviloma podana v diagramu F-t ali pa sigma-t in sestoji iz ogromnega števila točk (100.000 +). Ideja je v tem, da se iz te zgodovine obremenitve, ki ponavadi zgleda kot nekakšen šum, izloči standardne obremenitvene cikle in se jih zapiše v FROM-TO tabelo oz. FROM-TO matriko, kot je prikazano na primeru spodaj

Jaz sem program naredil tako, da sem najprej oblikoval vrednosti FROM v svoj vektor in vrednosti TO v svoj vektor. Elementa v enaki zaporedni legi posameznega vektorja torej predstavljata svojo kombinacijo, v tem primeru npr. [1,2], [2,2], [1,2], [4,1],...
In glede na dolžino teh dveh vektorjev se oblikuje kvadratna matrika ustrezne velikosti. Za izhodišče vzamemo matriko ničel in tako na mestih kombinacij prištejemo +1, ko se ta kombinacija pojavi. Seveda v realnem primeru se lahko določeni obremenitveni cikel pojavi 1000x ali celo več, zato bo tam matrika velikosti npr, 100x100 in ne bodo vrednosti v njej samo enice in dvojke.
Mene zanima, kako bi napisal kodo, da ko se pojavi določena kombinacija, da se tam prišteje +1. Sam sem celotni algoritem že napisal, dobim torej vektor vrednosti from in vektor vrednosti to, ne znam pa napisati ustrezen algoritem, ki bi glede na te vrednosti na lokaciji prišteval +1. Zaenkrat sem zapisal takole:
mat_from_to = np.zeros(shape=(int(d),int(d)))
MAT = np.zeros(shape=(int(d),int(d)))
s=int(d-1)
for i in range(s):
mat_from_to[vek_from[i]-2, vek_to[i]-2] += 1
To seveda ni OK, saj mi v takšnem primeru samo prejšnjo vrednost nadomesti z 1, kar pomeni, da četudi se določena kombinacija pojavi večkrat, ne morem preseči 1. Sam sem preizkusil že več kombinacij, a mi ni uspelo...
Mislim da obstaja neka zelo preprosta rešitev, ki pa mi zaenkrat žal še ni prišla na pamet, zato bi prosil, če ima kdo kakšno idejo, kako bi to lahko rešil.
Lep pozdrav,
Luka