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

Code schneller machen

 

Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.03.2013, 12:23     Titel:
  Antworten mit Zitat      
Hallo Florre,

Zitat:
komisch als ich das erste mal gemacht habe hat er mir gesagzt out off Memmory jetzt geht es scheinbar...

Geht es nun "scheinbar" (also eigentlich doch nicht) oder "anscheinend"? War vielleicht Dein Speicher erschöpft, z.B. weil vorher eine Schleife ohne Pre-allocation gelaufen ist?
Warum Dein Speicher nun einen genügend großen freien Block enthält, kann ich nicht wissen.

Es ist sehr verwunderlich, dass die vektorisierte Methode und die Schleife unterschiedliche Ergebnisse liefern. Du solltest die Ursache für die Unterschiede aber leicht finden können, indem Du die Zeilen in kleinere Ausdrücke aufteilst und sie jeweils vergleichst.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen


Florre
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 28.02.13
Wohnort: ---
Version: R2009a, R2016b
     Beitrag Verfasst am: 01.03.2013, 12:39     Titel:
  Antworten mit Zitat      
Kann man irgendwie
Code:
dlmwrite(nummerbild,Einlesen,'delimiter', '\t');

beschleunigen??
sie braucht zwar "nur" 7,94 Sekunden da ich mit dem Programm mehrere 100 Dateien verarbeiten muss/will Summiert sich das auch...
Gibt es eine Alternative??

LG Florre
Private Nachricht senden Benutzer-Profile anzeigen
 
Florre
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 28.02.13
Wohnort: ---
Version: R2009a, R2016b
     Beitrag Verfasst am: 01.03.2013, 12:43     Titel:
  Antworten mit Zitat      
Hallo Jan

Also es funktioniert jetzt mit der Prekonditionierung... Ohne Probleme...
Hab wohl damals (Als ich den Code erstellt habe Bastle da Jetzt schon 2 Monate dran, Hatte zwischenzeitlich andere Arbeiten zu machen) nen Fehler gemacht...

Lg Florre
Private Nachricht senden Benutzer-Profile anzeigen
 
Florre
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 28.02.13
Wohnort: ---
Version: R2009a, R2016b
     Beitrag Verfasst am: 01.03.2013, 13:06     Titel:
  Antworten mit Zitat      
So hab den Fehler gefunden warum die beiden nicht die gleichen ergebnisse liefern...
Meine Anfangsformel war Falsch...
Code:
S1(y)=(Einlesen(y,1)-Einlesen(y-1,1))*((Einlesen(y-1,6)+Einlesen(y,6))/2);


und meine
Code:
Sg = diff(Einlesen(:,1)).*(Einlesen(1:end-1,6)+Einlesen(2:end,6)/2);

Richtig währe aber
Code:
Sg = diff(Einlesen(:,1)).*(Einlesen(1:end-1,6)+Einlesen(2:end,6))/2;


Die können nicht das gleiche ergeben...

Fehler gefunden...
Zuviele Klammer sind auch nicht gut...
liegt wohl daran das ich an 2 Rechnern Arbeite..
Einer I-net und einer MATLAB.
Private Nachricht senden Benutzer-Profile anzeigen
 
Florre
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 28.02.13
Wohnort: ---
Version: R2009a, R2016b
     Beitrag Verfasst am: 01.03.2013, 14:34     Titel:
  Antworten mit Zitat      
Danke noch mal an Alle die geholfen haben.
Hab es geschaft meinen Code von 260Sec. auf 27Sec. zu reduzieren....

Danke Schön


LG Florre
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 01.03.2013, 15:34     Titel:
  Antworten mit Zitat      
Der JIT Accelerator ist eine Technologie die seit vielen Jahren Teil von MATLAB ist und nicht irgenwie separat aktiviert werden muss, aber eben nicht immer genutzt wird (siehe function vs. script).

Der offensichtlichste Wert liegt in der Beschleunigung von Schleifen. Noch heute findet man Dozenten die sagen "Schleifen sind langsam, Matrizenoperationen sind schnell". Aber der Unterschied ist in vielen Fällen nicht mehr relevant.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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 - 2025 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.