• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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.