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

Lookup Tables gibt fälschlicherweise NaN wieder

 

KK1996
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2019, 11:41     Titel: Lookup Tables gibt fälschlicherweise NaN wieder
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem. Ich habe ein 2D-Lookup Tables erstellt. Die Breakpoints sind als x und y benannt und die Matrix, die ich in den 2D-LU Block eingefügt habe, ist als z betitelt. Das Problem ist Folgendes:
Wenn ich für den Vektor x den Wert 2 und für den Vektor y den Wert 3000 eingebe, wird nan herausgegeben, obwohl dieser Punkt zwischen zwei in der Matrix vorhandenen Werten liegt.

Kann mir da jemand weiterhelfen?

tableLU.PNG
 Beschreibung:

Download
 Dateiname:  tableLU.PNG
 Dateigröße:  129.41 KB
 Heruntergeladen:  269 mal
Test.slx
 Beschreibung:

Download
 Dateiname:  Test.slx
 Dateigröße:  21.61 KB
 Heruntergeladen:  255 mal
z.mat
 Beschreibung:

Download
 Dateiname:  z.mat
 Dateigröße:  3.41 KB
 Heruntergeladen:  295 mal
x.mat
 Beschreibung:

Download
 Dateiname:  x.mat
 Dateigröße:  313 Bytes
 Heruntergeladen:  289 mal
y.mat
 Beschreibung:

Download
 Dateiname:  y.mat
 Dateigröße:  277 Bytes
 Heruntergeladen:  312 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.05.2019, 12:28     Titel:
  Antworten mit Zitat      
Hallo,

bei 2D kann Simulink nicht entlang einer Linie gehen, sondern braucht (min.) 4 Eckpunkte einer Fläche. Anscheinend wählt Simulink, wenn der y-Wert mit einem Table-Wert übereinstimmt, die Fläche rechts davon, und für y = 3250 und x = 2.15... ist NaN eingetragen.

Abhilfe kann neben einem anderen Algorithmus geschaffen werden, indem man den y-Wert minimal nach links verschiebt: 3000 - eps(3000)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
KK1996
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2019, 13:29     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deine schnelle Antwort!

Ich verstehe noch nicht ganz, wieso das nach links verschieben das Problem lösen sollte, denn er bräuchte ja trotzdem noch 4 Eckpunkte für die korrekte Interpolation und das bloße nach links verschieben ändert ja den Punkt y=3250 und x=2.15.. nicht.

Gruß
Karan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.05.2019, 14:10     Titel:
  Antworten mit Zitat      
Hallo,

wenn du das etwas nach links verschiebst, wird ein Rechteck weiter links genommen, und das enthält keine NaN.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
KK1996
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2019, 14:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

also ich habe jetzt einfach eine Spalte rechts von den 3000 hinzugefügt mit einem eps von 0.0001. Dort habe ich dieselben Werte von der 3000er Spalte eingetragen, sodass der Algorithmus den vierten Wert füllen kann.

Dummerweise muss das nun für alle Spalten gemacht werden, die ein nan enthalten... ist ein etwas aufwendiger Lösungsansatz
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.05.2019, 15:07     Titel:
  Antworten mit Zitat      
Hallo,

ich behaupte, dass mein Vorschlag einfacher war... was spricht dagegen?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 2024 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.