matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabMatrizen-Algorithmus langsam
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Matlab" - Matrizen-Algorithmus langsam
Matrizen-Algorithmus langsam < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matrizen-Algorithmus langsam: Korrektur, Idee
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 15:27 Mo 24.09.2007
Autor: chebsam

hallo,

hab folgenden teil einer funktion in matlab genauer untersucht und möchte gerne wissen, ob jemand eine idee hat, wie es schneller läuft...das dauert echt extrem lange:

anzahl=150;
for i = 1:anzahl
  name = ['b1_',num2str(i)];
  load(name);
  disp(['Shot ', num2str(i)]);

  for z = 1:size(b1_res,2)
    vekName = ['vektor_',num2str(z)];
    load(vekName);
   vektor(:,i) = b1_res(:,z);
   save(vekName, 'vektor') ;
  end
end

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
tutorials.de


        
Bezug
Matrizen-Algorithmus langsam: Antwort
Status: (Antwort) fertig Status 
Datum: 16:33 Mo 24.09.2007
Autor: Martin243

Hallo,

in erster Linie fällt auf, dass du hier mit vielen Dateien hantierst. Ich denke, wenn es dir gelänge, die Daten besser zu organisieren (1 "b1"-Datei, 1 "vektor"-Datei), dann würde es erheblich schneller gehen. Man könnte einmal alle Daten laden, sie im Speicher auswerten und dann in eine Datei zurückschreiben.
Falls eine Reorganisation nicht möglich ist, weiß ich im Moment auch nicht weiter.


Gruß
Martin

Bezug
                
Bezug
Matrizen-Algorithmus langsam: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:14 Mo 24.09.2007
Autor: chebsam

Was genau meinst du mit [1 "b1"-Datei, 1 "vektor"-Datei]?

Es sind tatsächlich ganz viele Vektoren (mehrere Tausend), aber das kann ich ja nicht ändern...saß schon 4h daran und habe keine Zeit gewonnen!
Also Anzahl=150 und je b1-Vektor habe ich wieder unzählige Vektoren, die dann in der zweiten for-Schleife überlagert werden.
Ich denke, dass der Befehl "load" bzw. "save" ziemlich lange dauert.
Gibt es eine Alternative?

Danke.

Bezug
                        
Bezug
Matrizen-Algorithmus langsam: Antwort
Status: (Antwort) fertig Status 
Datum: 18:23 Mo 24.09.2007
Autor: Martin243

Hallo,

> Was genau meinst du mit [1 "b1"-Datei, 1 "vektor"-Datei]?

Na ja, wie du schon selber vermutest, dauern load und save recht lange, insbesondere die häufige Verwendung dieser Befehle. Also meinte ich bloß: Wenn du die Anzahl der Dateien (nicht der Daten!) verringern kannst, dann tu das. Ich weiß ja nicht, wie die Daten zustande kommen. Ich kenne ja die komplette Problemstellung nicht.
Das Laden der Daten könnte man in einem Zug durchführen und sie dann verarbeiten.


Gruß
Martin


Bezug
                                
Bezug
Matrizen-Algorithmus langsam: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:44 Mo 24.09.2007
Autor: chebsam

Ich glaube an dieser Stelle scheitert's mit Matlab...das dauert einfach zu lange! Das Problem ist, dass ich erst die b1-Vektoren einlesen MUSS. Das sind Bilddaten, die erst nach und nach generiert werden.

kennst du Dich auch in C aus?
Lohnt es sich, diesen Teil der Funktion in C umzuschreiben? Hab seit einem Jahr kein C mehr programmiert!!!

PS: Nützt dir das was, wenn ich dir die ganze Funktion zusende per Email?

Bezug
                                        
Bezug
Matrizen-Algorithmus langsam: Antwort
Status: (Antwort) fertig Status 
Datum: 18:52 Mo 24.09.2007
Autor: Martin243

Hallo,

> Ich glaube an dieser Stelle scheitert's mit Matlab...das dauert einfach zu lange! Das Problem ist, dass ich erst die b1-Vektoren einlesen MUSS. Das sind Bilddaten, die erst nach und nach generiert werden.

Hmmm, die Bilddaten lassen sich in Matlab nicht generieren?

> kennst du Dich auch in C aus?

Joa, sollte für "einfache" Anwendungen reichen.

> Lohnt es sich, diesen Teil der Funktion in C umzuschreiben? Hab seit einem Jahr kein C mehr programmiert!!!

Nun, eine genaue Abwägung an dieser Stelle fällt mir, schwer, da ich sonst nicht viel über dein Problem weiß, aber...

> PS: Nützt dir das was, wenn ich dir die ganze Funktion zusende per Email?

Mal schauen...


Gruß
Martin

Bezug
                                                
Bezug
Matrizen-Algorithmus langsam: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:56 Di 25.09.2007
Autor: chebsam

Könnte man in C nicht Pointern bzw. "vector" arbeiten?

Bezug
                                                        
Bezug
Matrizen-Algorithmus langsam: Antwort
Status: (Antwort) fertig Status 
Datum: 16:04 Di 25.09.2007
Autor: Martin243

Hallo,

> Könnte man in C nicht Pointern bzw. "vector" arbeiten?

Ja natürlich. Dafür sind Pointer wie gemacht.
Das Problem ist, du schreibst in deiner Matlab-Datei, dass die Matrix zu groß werden könnte. Du müsstest also abschätzen, wieviele Daten(-sätze) du gleichzeitig im Speicher halten kannst, damit du herumpointern kannst.
Wenn du das Ganze in C mit genauso vielen Lade- und Speichervorgängen schreiben würdest, dann ginge ein Großteil des Geschwindigkeitsgewinns flöten (ok, es wäre immer noch schneller, aber nicht so schnell, wie möglich).

Ich kann das, was du mir geschickt hast, auch nicht schneller machen, weil die Lade- und Speichervorgänge so miteinander verflochten sind. Man müsste auf jeden Fall mehr Daten im Speicher halten und sie dort erstmal sammeln und dann erst zurückschreiben. Aber die Datendimensionen kannst nur du einschätzen.


Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]