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

Problem bei Filterung

 

Antipas
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2015, 15:06     Titel: Problem bei Filterung
  Antworten mit Zitat      
Hallo,

ich habe ein Problem, an dem ich mir seit einer Weile die Zähne ausbeiße.

Kurze Aufgabenbeschreibung:
- Mit Hilfe des Comsol-Matlab-Livelinks hole ich mir Daten aus Comsol (Livelink, bzw. Comsol nicht für das angehängte Skript notwendig!)
- Bei den Daten handelt es sich um Koordinaten, Materialeigenschaften und Indizes.
- Leider kann ich aus Comsol nicht alle Eigenschaften bezogen auf die Koordinaten auslesen, sodass ich sie per Skript ersetzen will, damit die Weiterverarbeitung richtig funktioniert.

Aufgabe des Skriptes:
Das Skript soll aus dem Datenbereich, der aus Comsol importiert wird (abgelegt in "testdaten.mat") für den Bereich unterhalb der Physikgrenze (siehe "Kurzbeschreibung.png") den Parameter ersetzen.

Bekannte Parameter:
-Es ist die Funktion der Physikgrenze bekannt, der Wert der Eigenschaft oberhalb (Bereich I) und unterhalb (Bereich II) der Grenze.
-In den Daten ist für alle Punkte der gleiche Wert abgelegt, welcher für Bereich I richtig ist, aber für Bereich II nicht.

Was bis jetzt passiert:
-Wenn ich mit Zufallszahlen arbeite, dann funktioniert das Skript einwandfrei.
-Wenn ich die aus Comsol extrahierten Daten verwende, dann bleiben viele Einträge die ersetzt werden müssten unersetzt.
- Falls die x-Werte (Spalte 4 in testdaten) auf eine Nachkommastelle runde, dann funktioniert das Skript wieder einwandfrei, allerdings brauche ich wenigstens 10 signifikante Stellen.

Kann jemand das Problem identifiezieren und eventuell lösen?
Ich vermute, dass das Problem zwischen Zeile 60 und 66 liegt, bin mir da aber nicht ganz sicher.
Ich vermute ein Zahlendarstellungsproblem, welches sich in Zeile 96 an der Stelle
nrr == nrlr(NFindi)
auswirkt und zu der fehlerhaften Ausgabe führt.

Was ich schon probiert habe (Auswahl):
- Ich habe runden probiert
- ich habe auch schon die Verwendung von for statt parfor probiert (kein Unterschied nur die Berechnung dauert länger).

Informationen zum Skriptaublauf:
1. Bereitstellen der Daten (bis Zeile 25)
2. Aufbereiten der Daten für den Such- und Ersetzalgorithmus (Zeile 27 bis 59)
3. Suchen und Ersetzen (Zeile 60 bis 66)
4. Zusammenführen und Rücksortieren (Zeile 68 bis 76)
5. Debugausgabe (Zeile 80 bis 91).

Danke für eure Vorschläge,

Antipas.

algotest2_gm.m
 Beschreibung:
Skript für das ersetzen mit der Möglichkeit zufallszahlen zu verwenden, oder bereits aus Comsol exportierte Daten.

Download
 Dateiname:  algotest2_gm.m
 Dateigröße:  2.61 KB
 Heruntergeladen:  293 mal
Kurzbeschreibung.png
 Beschreibung:
Kurzbeschreibung der Aufgabe

Download
 Dateiname:  Kurzbeschreibung.png
 Dateigröße:  4.47 KB
 Heruntergeladen:  212 mal
testdaten.mat
 Beschreibung:
enthält Daten aus Comsol und den verwendeten "function handle"

Download
 Dateiname:  testdaten.mat
 Dateigröße:  245.9 KB
 Heruntergeladen:  279 mal
Private Nachricht senden Benutzer-Profile anzeigen


Antipas
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2015, 14:31     Titel:
  Antworten mit Zitat      
Hab das Problem gelöst.

Die Umrechnung bei r von cm in mm und zurück war das Problem.

Dadurch ist vermutlich bei der internen Zahlendarstellung etwas verändert worden was den Fehler hervorbrachte.

Wenn das jemand genauer weiß, dann wäre ich über eine Erklärung sehr dankbar.

Viele Grüße,

Antipas.

algotest2_gm.m
 Beschreibung:
Korrigierte Version

Download
 Dateiname:  algotest2_gm.m
 Dateigröße:  3.08 KB
 Heruntergeladen:  250 mal
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.