Logarithmus Problem ???



  • Hi

    Ich möchte aus einem valarray Werte auslesen und zwar folgender Maßen :

    valarray v ist der zeiger in dem Daten gespeichert sind, und h ist der valarray an den die Daten in einer anderen Reihenfolge übergeben werden sollen.

    Hier ein Beispiel mit einem valarray v mit 9 Elementen (Matrix 3 Zeilen u. 3 Spalten)

    v[0] = h[0];
    v[3] = h[1];
    v[6] = h[2];
    v[1] = h[3];
    v[4] = h[4];
    v[7] = h[5];
    v[2] = h[6];
    v[5] = h[7];
    v[8] = h[8];

    Der Abstand zwischen den v's soll immer so groß sein, wie die an Anzahl der Zeilen der Matrix.

    Ich glaube am besten wäre das irgendwie mit slice();

    Hier mein Versuch der allerdings nicht das gewünschte Ergebniss bringt :

    int z = StrToInt(Edit1->Text);//Einlesen der Zeilen der Matrix
    int s = StrToInt(Edit2->Text);//Einlesen der Spalten der Matrix
    
    std::valarray<double> h1(z*s);
    
                    int m=0;
                    for (int i=0;i<s;i++)
                       for (int j=0;j<z;j++)
                           {
                           if (m<z*s)
                           {
                           m++;
                           h1[m - 1] = StrToFloat(Form1->StringGrid1->Cells[i][j]);
                           };
                           }
    valarray<double> spalte(s);
    
    for (int i=0; i < z; i++)
            spalte = h1[slice(i,s,z)];
    
    for (int i=0;i<z*s;i++)
            Memo2->Lines->Add(spalte[i]);
    

    Hier ist das Problem das er nur die letzten drei Daten meines StringGrids einliest. Ich bräuchte aber alle so wie oben beschrieben ???

    😞 😞 😞 😞 Bin ratlos !!!

    THX
    Fleedo



  • for (int i=0; i < z; i++) 
            spalte = h1[slice(i,s,z)]; 
    
    for (int i=0;i<z*s;i++) 
            Memo2->Lines->Add(spalte[i]);
    

    Das kann doch so nicht richtig sein, oder? 😉
    Ansonsten ist die Idee mit den Slices gar nicht schlecht.

    Aber du könntest auch anders an die Elemente der Matrix kommen:
    Sei M deine Matrix mit z Zeilen und s Spalten, dann ist M[i][j]=v[z*i+j].

    Ich hoffe das hilft dir weiter...

    <edit>
    Logarithmus Problem ???
    Ähh, wo genau versteckt sich der Logarithmus 😕
    </edit>



  • <edit>
    Logarithmus Problem ???
    Ähh, wo genau versteckt sich der Logarithmus
    </edit>

    Striche Logarithmus setze Algorithmus


Anmelden zum Antworten