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

große Matrix mit wenigen Messwerten interpolieren

 

smlukori
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2014, 09:15     Titel: große Matrix mit wenigen Messwerten interpolieren
  Antworten mit Zitat      
Hallo!

Ich nutze eine 32 bit Matlab Version auf einem 64 bit Windows 7 System.

Ich habe eine 3125x3125 Matrix im double Zahlenformat. Das macht insgesamt 78125000 Bytes und 9765625 Elemente. Von diesen 9765625 Elementen sind allerdings nur 7526 mit richtigen Werten besetzt. Die 9758099 (noch) nicht besetzten Werte möchte ich jetzt gerne durch Interpolation "auffüllen".
Dabei möchte ich jedoch die Matrixgröße komplett beibehalten und die vorhandenen Werte sollten auch "möglichst" gleich bleiben, also den selben Wert an der selben Stelle in der Matrix halten.

Wie sollte ich die nicht besetzten Werte zunächst vor der Auffüllung darstellen ? Als NaN oder Nullwerte ? Oder ganz anders?

Wie lässt sich das "Auffüllen" der Matrix angehen ?

//Edit: Und noch eben eine andere kurze Frage, welche mir vorhin eingefallen ist: Meine vorhandenen Werte in der Matrix bewegen sich im Bereich von 0.0 bis 400.0 und weisen stets eine Nachkommazahl auf. Also XXX.x
Welches Zahlenformat bietet sich hierfür am besten an ? Vielleicht kann ich dadurch Speicher einsparen..

Danke schonmal!

Gruß,
smlukori
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 22.05.2014, 10:09     Titel:
  Antworten mit Zitat      
Hallo,
das sind doch dann unter 100MB für double, richtig? Das sollte doch eigentlich keine Probleme machen.

Würde NaN für die fehlenden Werte empfehlen. Denk daran, dass du nur alles interpolieren kannst, wenn der Rand besetzt ist. Ansonsten müsste man extrapolieren, das ist dann ein anderes Thema.

Für ein ähnliches Beispiel, siehe hier:
http://www.gomatlab.de/2d-interpolation-mit-nan-t32315.html

Falls es nicht klappt, dann einfach Rückfragen stellen.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
smlukori
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2014, 12:19     Titel:
  Antworten mit Zitat      
Nras hat Folgendes geschrieben:
Hallo,
das sind doch dann unter 100MB für double, richtig? Das sollte doch eigentlich keine Probleme machen.

Würde NaN für die fehlenden Werte empfehlen. Denk daran, dass du nur alles interpolieren kannst, wenn der Rand besetzt ist. Ansonsten müsste man extrapolieren, das ist dann ein anderes Thema.

Für ein ähnliches Beispiel, siehe hier:
http://www.gomatlab.de/2d-interpolation-mit-nan-t32315.html

Falls es nicht klappt, dann einfach Rückfragen stellen.

Viele Grüße,
Nras.


Danke für deine schnelle Antwort!

Ich habe mir dein Beispiel mal angeschaut und versucht, dies auf meine Arbeit zu übertragen.

h ist meine 3125x3125 Matrix, welche Hoehenwerte darstellen soll. Jedes Element in der Matrix soll eine 10cmX10cm Fläche darstellen. In h sind allerdings noch sehr viele NaN's vorhanden. Die am Rand interessieren mich nicht, da hier die "Karte" für mich auch eigentlich enden sollte. Nur zwischen den vorhandenen Messwerte sollen die NaN's beseitigt werden.

Auf den ersten Blick scheint es geklappt zu haben. Zwischen den Messwerten sind jetzt neue Werte vorhanden. Am Rand der Matrix sind die NaN's noch vorhanden. Auch gut so!

Nur leider habe ich jetzt keine schöne glatte Oberfläche sondern immer wieder recht stark ausgeprägte "Beulen" :/ Woran kann das liegen ?

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 22.05.2014, 12:43     Titel:
  Antworten mit Zitat      
Hallo,

kannst du vielleicht dein Ergebnis als Bild hochladen, dann kann ich vielleicht besser verstehen, was genau diese "Beulen" sind Wink.
Noch besser wären die zusätzlich die Daten und dein Code, sofern veröffentlichbar.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
smlukori
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2014, 13:36     Titel:
  Antworten mit Zitat      
Danke für deine Hilfe!

Ich vermute den "Fehler" mit den Beulen mittlerweile doch eher in einem anderen Programmteil, wodurch mein eigentliches Anliegen in diesem Thread durchaus beantwortet sein könnte. Ich werde mich selber nochmal ausführlicher auf die Suche nach den Ursachen machen bevor ich hier unüberlegt eine Frage nach der anderen stelle Laughing

Ich werde mich sonst nochmal melden Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.