PDA

View Full Version : [FRAGE] - Bsp 1.3.2


oliwise
20-10-2004, 00:17
Hat jemand von euch das Beispiel schon gelöst? Wir habens heute fertig gestellt, nur dauert es ziemlich lange zu berechnen (ca. 1 1/2 Minuten auf einem 1,6 GHz Centrino). Da haben wir uns gefragt, ob wir das vielleicht schlecht implementiert haben.

Wie ist das bei euch?

buschti
20-10-2004, 11:39
Das dauert definitiv zu lange. Wahrscheinlich habt ihr for-Schleifen in eurem Skript, wo keine benötigt werden. Habt ihr die Matlab-Funktionen mean() bzw. std() verwendet?

oliwise
20-10-2004, 15:05
Wir haben 3 for Schleifen. Allerdings ist uns nicht klar, wie wir aus der Matrix 1024 8x8 Blöcke machen sollen, ohne for-Schleifen zu verwenden.
Hast du das Beispiel schon gelöst, oder meinst du nur generell, dass das zu lange dauert.

mean() und std() haben wir verwendet.

oliwise
20-10-2004, 15:59
Hier mal das Ergebnisbild. Sieht das bei euch auch so aus?

buschti
20-10-2004, 19:10
(Das Ergebnis hast Du wohl vergessen einzufügen)

Für die Kachelung benötigt ihr wirklich 2 for-Schleifen, eine für die x- und eine für die y-Richtung. Aber wozu die dritte? Ihr schneidet einfach jeweils einen 8x8 Block aus, berechnet den Mittelwert und die Standardabweichung davon und speichert diese Werte in zwei neuen Matrizen.

oliwise
20-10-2004, 21:13
Das Ergebnis hab ich nicht vergessen, hängt als Bild an.
Die dritte Vorschleife gibts nicht mehr, die haben wir gebraucht weil wir komischerweise in der Hilfe die SubMatrix Funktion nicht gefunden haben, deswegen haben wir 8 Vektoren augelesen und in eine Matrix gespeichert.
Das Problem mit der ewig langen Berechnung haben wir auch schon behoben, war nur deswegen, weil wir keine Semicolons gesetzt haben und deswegen im Commandwindow alle Berechnungen angezeigt worden sind. Jetzt dauert das Berechnen gerade schätzungsweise eine fünftel Sekunde.

buschti
21-10-2004, 00:15
Bin ich blöd, oder wieso seh ich das Attachment nicht?

oliwise
21-10-2004, 00:51
weiß nicht. Ich sehs auf jeden Fall, und in einem anderen Post hab ich heute auch ein Attachement angehängt und da hats auch funktioniert. Das Bild heißt chaplin.png

buschti
21-10-2004, 10:02
Wirklich komisch. Das Attachment im Thread http://tigerente.htu.tuwien.ac.at/~iforum/showthread.php?t=23033 seh ich beispielsweise, das hier jedoch nicht...

Waxy
21-10-2004, 13:28
Also dein Ergebnis stimmt mit meinem vollkommen überein.
Nur ich hab da, glaub ich, einen besseren Tipp für die Aufteilung in 8x8-Blöcke:
mat2cell

Funktioniert wunderbar.

oliwise
21-10-2004, 14:42
Danke, hab in der Hilfe nachgesehen, das macht das Ganze wirklich um einiges einfacher.

Glaub nicht, dass ich es noch ändern werde, weil es ja eh funktioniert, aber gut zu wissen, dass es so eine Funktion gibt

buschti
21-10-2004, 16:11
Jetzt hab ich's endlich auch geschafft, das Bild anzuschauen, mit einem anderen Forum-Skin geht's...
Dein Ergebnisbild schaut einmal richtig aus.

Übrigens geht das ganze, wie ich gerade erst selber herausgefunden habe, auch ganz ohne for-Schleifen, nämlich mit der Funktion blkproc()

Walter Huber
27-10-2004, 01:24
Wie bekommts ihr die werte mit mat2cell so hin dass ihr sie nachher noch bearbeiten könnt?
wenn ich das mit der ganzen matrix mach, bekomme ich einen cell array.
jetzt weiss ich aber nicht wie ich auf die einzelnen blöcke zugreifen kann.
bitte um hilfe

Waxy
27-10-2004, 10:23
Bei Y = mat2cell(X,[8 8], [8 8])
greifst du auf die Blöcke so zu:
Y{1,1}
Y{1,2}
Y{2,1}
Y{2,2}

Walter Huber
27-10-2004, 11:10
danke für die hilfe bei mir siehts jetzt genauso aus.