|
utgmk |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2012, 15:16
Titel: Performance Surf
|
 |
Guten Tag,
ich habe ein kleines Problem mit der Performance der Surf Funktion.
Folgende Situation
Matrix mit Dimension 1700 x 1700
Ich möchte diese Matrix 3D ploten. Das Ergebnis soll wie im Anhang aussehen, jedoch ohne Gitter.
Hier ist die Funktion die ich geschrieben habe:
Jetzt mein Problem. Die Performance, wenn ich das Ergebnisplot drehen will, ist einfach sehr schlecht. Es dauert mehrere Sekunden, bis das neue Bild angezeigt wird.
Kann man da irgendetwas machen?
Danke für die Antworten.
Beschreibung: |
|
 Download |
Dateiname: |
Grafik.png |
Dateigröße: |
153.22 KB |
Heruntergeladen: |
534 mal |
|
|
|
|
|
utgmk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2012, 15:18
Titel: zweiter Versuch
|
 |
Ich habe auch versucht, den Plot anders zu erstellen.
jedoch habe ich da das Problem, dass die Farben nicht passen. Und es nicht möglich ist, eine Matrix mit 1700 x 1700 Pixeln zu laden. Dann erscheint eine Exception.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.03.2012, 18:26
Titel: Re: zweiter Versuch
|
 |
Hallo utgmk,
Gibt es eine Fehlermeldung beim Erscheinen der Exception?
Gruß, Jan
|
|
|
utgmk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2012, 11:35
Titel:
|
 |
Hallo
also bei der Funktion
kommt keine Fehlermeldung.
Bei der Funktion
Kommt die Exception:
{"\n\n... MWMCR::EvaluateFunction error ... \nUnexpected Standard exception from MEX file.\nWhat() is:bad allocation\n\nError in => PlotMatriceOptimize.m at line 19.\n\n... Matlab M-code Stack Trace ...\n at\nfile C:\\Program Files\\MATLAB\\MATLAB Compiler Runtime\\v716\\toolbox\\matlab\\specgraph\\reducepatch.m, name reducepatch, line 123.\n at\nfile C:\\Users\\test\\AppData\\Local\\Temp\\test\\mcrCache7.16\\Plot_80\\Plot\\PlotMatriceOptimize.m, name PlotMatriceOptimize, line 19.\n\n"}
Diese Funktion ist aber irgendwie auch nicht wirklich schneller.
Also die Anforderung ist weiterhin die, eine Matrix 1700 x 1700 performant zu plotten, dass das Ergebnis so aussieht wie die surf Funktion.
Danke für die Antworten.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.03.2012, 11:49
Titel:
|
 |
Hallo,
Vorschlag:
nicht die volle Matrix plotten, sondern z.B. nur jeden 2., 5. oder 10. Datenpunkt in jeder Richtung. Bei 1700x1700 müssen knapp 3 Mio. Datenpunkte aktualisiert werden, was etwas viel ist.
Wenn die Einträge der Matrix nicht zu stark variieren, sollte das kaum einen sichtbaren Unterschied machen.
Grüße,
Harald
|
|
|
utgmk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2012, 15:03
Titel:
|
 |
Ja das stimmt. Die Matrix kommt von einer 3 MegPixel Kamera.
gibt es da eventuell einen schönen Algorithmus, wie man die Matrix verkleinern kann und das die Werte noch einigermaßen repräsentativ sind.
Z.b Verrechnung der benachbarten Pixel als Mittelwert?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.03.2012, 15:07
Titel:
|
 |
Hallo,
wenn es ohnehin um ein Bild geht, könnte man IMRESIZE aus der Image Processing Toolbox verwenden. Dort dürften solche Aspekte berücksichtigt sein.
Grüße,
Harald
|
|
|
utgmk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2012, 17:12
Titel:
|
 |
Nein es ist kein Image.
Es sind Daten von einem 3D Messplatz. (XYZ Koordinaten)
Die Funktion IMRESIZE hört sich sehr interessant an.
Werde ich später gleich mal ausprobieren.
Ich melde mich wieder.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|