1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Matlab 2008b - parfor - parallele Schleifen

Dieses Thema im Forum "Andere Software" wurde erstellt von Randfee, 31.10.08.

  1. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    Hi,

    vielleicht weiß ja jemand, was das soll. Folgendes funktioniert nicht und ich verstehe nicht wieso:

    Code:
    %% setze Nullen -->> NaN
    highres=double(highres);
    [COLOR="Red"]parfor[/COLOR] i=1:size(highres,1);   %alle Bildzeilen
        for z=1:size(highres,2);    %alle Spalten
            if highres(i,z)<10;
                highres2(i,z)=NaN;
            end;
        end;             
    end;
    
    clear i
    clear z
    highres ist ein double Graustufenbild (array). Alle Werte kleiner 10 sollen als 'Nan' gesetzt werden. Mit "for" funktioniert das einwandfrei, mit parfor nicht. Folgender Fehler wird ausgegeben:
    Ich hab version 2008 noch nicht lange, würde aber gerne die Möglichkeit dieser parallelen Schleifen nutzen. Weiß einer was daran falsch ist?
     
  2. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    hat das hier überhaupt mal wer gelesen, ich ärgere mich heute nämlich schon wieder darüber, dass ich diverse cores hab, aber bei großen Schleifen (nicht rekursiven) in Matlab diese nicht nutzen kann.. grrrr
     
  3. Matt-nex

    Matt-nex Wagnerapfel

    Dabei seit:
    07.03.08
    Beiträge:
    1.563
    ich denke, dass dieses programm kaum bekannt ist. genauso wie lapview o.ä. das sind professionelle programme die für die meisten anwender underschinglich bleiben (oder auch nicht ;))
    vlt. wärst du mit deiner frage besser an solch ein forum wenden, da dort wahrscheinlich mehr user sind die das programm benutzen :)
     
  4. harden

    harden Roter Eiserapfel

    Dabei seit:
    28.03.05
    Beiträge:
    1.445
    Den Befehl selbst hab ich noch nicht benutzt deute die Fehlermeldung aber so, dass deine Variable highres2 vorher außerhalb der Schleifen deklariert werden sollte z.b. mit

    Code:
    highres2=zeros(size(highres,1),size(highres,2))
    Ansonsten könnte ich ohne Matlab nicht mehr leben :D und die 40€ für die Studentenversion sind eigentlich geschenkt
     
  5. Randfee

    Randfee Pomme d'or

    Dabei seit:
    28.12.04
    Beiträge:
    3.098
    hehe, ja, matlab hat halt den Vorteil vieler fertiger Pakete und Funktionen, die man sich sonst in c oder Ähnlichem erst basteln müsste, von daher geht vieles schnell von der Hand (ich brauche es nur hier und da um irgendwas auszuwerten. Insgesamt muss ich aber sagen, dass mir das Variablen- und Funktions-Handling nicht besonders zusagt, auch eine kleine GUI zu basteln mit den ganzen handels finde ich unnötig kompliziert, das ginge mit Sicherheit viel besser!

    An meiner Uni gibts das kostenlos, man muss nur per vpn eingeloggt sein um es zu nutzen, naja, gibt Schlimmeres.

    Zum Problem: die Variable ist vordeklariert. Veränderliche Variablen in der Schleife müssen aber natürlich mehrfach vorhanden sein, wenn die Schleife selber öfter als einmal parallel läuft.
     

Diese Seite empfehlen