Results 1 to 6 of 6
  1. #1
    MrM's Avatar
    Title
    Elite
    Join Date
    Apr 2004
    Posts
    317
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    3
    Thanked in
    3 Posts

    Matrix Normalisierung

    Hi!

    Vielleicht habts ihr so eine gute ahnung von Matlab aber ich schaffe es nicht eine Matrix Zeilenweise zu normalisieren (also Zeilensumme = 1) vielleicht habts ihr einen vorschlag wie ich das machen könnte ohne for schleifen.. ja is nicht für GDBV aber ich hoffe ihr habts davon eine gute ahnung und könnts zufällig helfen..

    lg
    m
    CG2Knecht/CG1Helpdesk - Ahnungsloser RTR-Ritter
    If only you knew that the world ends, would you change anything?
    **

  2. #2
    buschti's Avatar
    Title
    Baccalaureus
    Join Date
    May 2002
    Posts
    813
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Einen direkten Befehl kenn ich jetzt auch nicht dafür, aber so müßte es gehen:

    matrix./repmat(sum(matrix,2),1,size(matrix,2));

  3. #3
    MrM's Avatar
    Title
    Elite
    Join Date
    Apr 2004
    Posts
    317
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    3
    Thanked in
    3 Posts
    Soweit war ich auch schon.. aber ich hab das problem wenn eine zeile ganz 0 is.. da hab ich eine div. durch 0.. und wenn ich die summe vorher brechne und ein find drauf mach wirft er mir ein out of memory wenn die matrix grösser is als 3000x3000 und ich brauchs für matritzen in grösse 200.000x200.000 und grösser...
    CG2Knecht/CG1Helpdesk - Ahnungsloser RTR-Ritter
    If only you knew that the world ends, would you change anything?
    **

  4. #4
    buschti's Avatar
    Title
    Baccalaureus
    Join Date
    May 2002
    Posts
    813
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    also matrizen mit 200.000 x 200.000 elementen wirds generell wohl ned spielen denk ich. wenn die mit float-Werten (4 byte) füllst sind das, wenn ich mich nicht verrechnet habe, ja ca. 150 GB Speicher...

    edit: eine Möglichkeit sind noch sparse Matrizen, wenn Du viele Elemente = 0 hast
    Last edited by buschti; 21-11-2005 at 14:22.

  5. #5
    volpe's Avatar
    Title
    Master
    Join Date
    Nov 2003
    Location
    VIE
    Posts
    148
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    3
    Thanked in
    3 Posts
    vielleicht geht das in maple.... dauert zwar sicher ewigkeiten, aber das is da ziemlich fanatisch normalerweise...

    OK.. habs versucht:

    wenn man 200000x200000 angibt erzeugt das folgenden error: "Error, (in Matrix) dimensions too large", was mich nicht wundert

    bis zu einer größe von ca 46000x46000 würds theoretisch funktionieren, allerdings würde man für float werte immer noch 7,9 gigs speicher brauchen

    > Matrix(46000,46000,0.5);
    Error, (in Matrix) not enough memory to allocate rtable

    hab aus interesse versucht eine 4000x4000 matrize mit startwerten zu initialisieren, allerdings ist mir nach 4 minuten die lust vergengen auf das ergebnis zu warten (hab einen ziemlich schwachen rechner), aber funktionieren sollts

    wozu brauchst du so riesige matrizen (neugier.. ), vleicht kannst's ja in teilmatrizen zerlegen

  6. #6
    MrM's Avatar
    Title
    Elite
    Join Date
    Apr 2004
    Posts
    317
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    3
    Thanked in
    3 Posts
    Hehehe...

    Wie bereits angedacht es geht um sparse matrizen fast alles ist 0.
    Ist eine Adjazenzdarstellung eines Netzwerkes von homepages..

    Naja. nur muss ich die zeilenweise normieren.. und bei repmat (auf die idee bin ich auch schon gekommen) erzeugt man ja eine matrix die überall werte hat.. naja.. und die ist natürlich zu gross um damit umzugehn..

    lg
    m
    CG2Knecht/CG1Helpdesk - Ahnungsloser RTR-Ritter
    If only you knew that the world ends, would you change anything?
    **

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •