Dreiecksmatrix



  • Hi,

    ich habe eine Matrix, die entlang der Diagonalen gespiegelt ist. D.h. ich möchte, anstatt alle Einträge zu behandeln, diese "wie" eine Dreiecksmatrix ansprechen.

    Allerdings bin ich zu blöd dafür..

    Ich hätte gesagt

    for(int x=0; x<Zeilenanzahl; x++)
    {
    for(int y=0; y<Spaltenanzahl; y++)
    {
    if(x>y) hole_Eintrag[x][y];
    }
    }
    

    So verliere ich allerdings Einträge. Wenn ich sage, dass er x und y vertauschen soll, um diese fehlenden Einträge zu holen, stimmt es auch nicht..

    for(int x=0; x<Zeilenanzahl; x++)
    {
    for(int y=0; y<Spaltenanzahl; y++)
    {
    if(x>y) hole_Eintrag[x][y];
    else hole_Eintrag[y][x];
    }
    }
    

    Was muss ich denn ändern ??
    Vielen Dank schonmal!


  • Mod



  • Ich weiß nicht, ob es daran liegt, aber generell gilt:
    x-> Spalten
    y-> Zeilen
    Das hat natürlich keine Auswirkung, wenn dieser (sprachliche) Fehler überall gemacht wurde...



  • 🙂

    Bei einer Dreiecksmatrix sollte das ja egal sein ?! 🙂

    Aber ich glaube es gelöst zu haben:

    for(int x=0; x<Zeilenanzahl; x++)
    {
    for(int y=0; y<Spaltenanzahl; y++)
    {
    if(x>y) hole_Eintrag[x][y];
    else if(i+j<n) hole_eintrag[y][x];
    }
    }
    


  • Progressive schrieb:

    Bei einer Dreiecksmatrix sollte das ja egal sein ?! 🙂

    Nein. Aber du meinst gar nicht "Dreicksmatrix" (bei der wäre nämlich ein Dreieck über/unter der Diagonale 0), sondern eine "symmetrische Matrix", wo

    A=ATA = A^T

    .

    else if(i+j<n) hole_eintrag[y][x];
    

    Und glaubst du ersthaft, es wäre für uns möglich gewesen zu erraten, dass du noch irgendwo die Variablen i, j und n her hast, die du hier testen willst?


Anmelden zum Antworten