Verfasst am: 08.12.2009, 11:58
Titel: Brauche Hilfe bei Programmoptimierung
Hi Leute
ich brauche Hilfe um folgendes Programm schneller zu machen. Mir stehen 2gb Speicher zur Verfügung. Da ich Matlab Anfänger bin, bin ich froh, dass mein Programm läuft aber mir fallen keine Ideen zur Optimierung ein.
for q = i : 1 : i+800 % Bild1 = imread('A (0).tif'); <-- nicht innerhalb der FOR-Schleife!!
% assignin('caller', ['Bild' num2str(q)], imread(sprintf('A (%1d).tif', q))); % Laufbild = evalin('caller', ['Bild' num2str(q)]);
Laufbild = imread(sprintf('A (%1d).tif', q));
% Erzeugen der Variable Bild_q ist unnötig, da nie damit gearbeitet wird % Damit wird der meiste Speicher gar nicht gebraucht, die innere % for-Schleife sollte unnötig sein
Wenn die innere for-Schleife weggelassen werden kann (und ich denke, das kann sie), dann siehts so aus:
Code:
Bild1 = imread('A (0).tif');
for q = 1 : 29899
%for q = i : 1 : i+800 % Bild1 = imread('A (0).tif'); <-- nicht innerhalb der FOR-Schleife!!
% assignin('caller', ['Bild' num2str(q)], imread(sprintf('A (%1d).tif', q))); % Laufbild = evalin('caller', ['Bild' num2str(q)]);
Laufbild = imread(sprintf('A (%1d).tif', q));
% Erzeugen der Variable Bild_q ist unnötig, da nie damit gearbeitet wird % Damit wird der meiste Speicher gar nicht gebraucht, die innere % for-Schleife sollte unnötig sein
das Programm mit nur einer for Schleife läuft nun 5mal so schnell wie zuvor. Danke mal wieder für die schnelle Hilfe
Grüße
norm
Einstellungen und Berechtigungen
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
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.