eigen - Library - Klassenarithmetik
-
hi!
ich hab ein Problem bei dem ich ein bischen hilfe gebrauchen könnte
ich benutze die Library "eigen", verstehe aber die klassenaufbau nicht so ganz.
Problem:
Ich habe ein Feld (2D) mit Stützpunken. Dieses möchte ich in kleinere Blöck zerlegen, die sich überschneiden. Dazu sortiere ich das Feld zuerest nach Dimension1 (kein Problem) und zerlege das große Feld in kleinere.Matrix<Matrix<float,Dynamic,Dynamic>,Dynamic,1> mA; mA.resize(anz_grenzen); for(int i =0;i<anz_grenzen;i++) { mA(i).resize(faktor*o,2); for(int j =0;j<faktor*o;j++) { if(C.rows()== j+(faktor*i)) { mA.resize(i+1); anz_grenzen -=1; break; } for(int k =0; k< dimension; k++) { mA(i)(j,k) = C(j+(faktor*i),k); } } }
soweit funktioniert das alles noch, jetzt möchte ich die kleinen Felder wieder aufspalten, diesmal jedoch in Dimension2. D.h. sortieren (auch das ist wieder kein problem), dann wieder zerlegen:
meine ideeMatrix<Matrix<Matrix<float,Dynamic,Dynamic>,Dynamic,1>,Dynamic,1> mAA; for(int q =0; q< anz_grenzen; q++){ int faktor2 = ceil(mA(q).rows()/float(anz_grenzen)); mAA.resize(q); for(int i =0;i<anz_grenzen;i++){ mAA(q).resize(i); mAA(q)(i).resize(faktor2*o,2); for(int j =0;j<faktor2*o;i++) { for(int k =0; k< dimension; k++) { mAA(q)(i)(j,k) = mA(q)(j+(faktor2*o,k)); } } } }
und das funktioniert leider nicht ... keine ahnung warum. Ich würd auch lieber
Matrix<Matrix<Matrix<float,Dynamic,Dynamic>*,Dynamic,1>*,Dynamic,1> mAA;
hab aber keine methode gefunden um die Werte zu bearbeiten bzw drauf zugreifen zu können "mAA->??(i,j)" ?!?
-----------------------------------------------------------------
lsg:
(*mA)(i,j)funktionen und rekursion ist das zauberwort
*closed!