• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Matlab 2008b - parfor - parallele Schleifen

Randfee

Pomme d'or
Registriert
28.12.04
Beiträge
3.113
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:
??? Error: The variable highres2 in a parfor cannot be
classified.
See Parallel for Loops in MATLAB, "Overview".

Ich hab version 2008 noch nicht lange, würde aber gerne die Möglichkeit dieser parallelen Schleifen nutzen. Weiß einer was daran falsch ist?
 

Randfee

Pomme d'or
Registriert
28.12.04
Beiträge
3.113
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
 

Matt-nex

Wagnerapfel
Registriert
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 :) http://www.gomatlab.de/
 

harden

Roter Eiserapfel
Registriert
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
 

Randfee

Pomme d'or
Registriert
28.12.04
Beiträge
3.113
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.