WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Parfor - "variable cannot be classified"... Hilfe

 

randfee
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 28.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2008, 15:30     Titel: Parfor - "variable cannot be classified"... Hilfe
  Antworten mit Zitat      
Hi,

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

Code:
%% setze Nullen -->> NaN
highres=double(highres);
parfor 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:
Zitat:
??? Error: The variable highres2 in a parfor cannot be
classified.
See Parallel for Loops in MATLAB, "Overview".


Dies ist nur ein Beispiel, ich habe sehr viele unabhängige Schleifen die alle parallelisierbar wären. Ich hab version 2008 noch nicht lange, würde aber gerne die Möglichkeit dieser parallelen Schleifen nutzen. Weiß einer was daran falsch ist?
Private Nachricht senden Benutzer-Profile anzeigen


Scycs00
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2008, 00:01     Titel:
  Antworten mit Zitat      
Hab das selbe Problem, gibt es eine Lösung dafür??
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 20.11.2008, 02:31     Titel:
  Antworten mit Zitat      
Also mit parfor hab ich noch nicht gearbeitet. Das Einzige was mir jetzt auffällt ist, dass man highres2 vor der Schleife definieren sollte.

Das ganze Problem würde ich ohne for-Schleifen lösen:

Code:

A=magic(10); % Beispiel Matrix
disp(A) % originales A anzeigen
A(A<10)=NaN; % wenn A kleiner 10 Element NaN setzen
disp(A) % neues A anzeigen
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.