|
|
Wert suchen, der am nähesten am Vielfachen von X dran ist |
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2015, 09:38
Titel: Wert suchen, der am nähesten am Vielfachen von X dran ist
|
|
Hallo Leute,
ich habe folgendes Problem. Habe einen Vektor mit den Abmessungen 595875x1 und möchste jetzt daraus alle Werte extrahieren und in einen neuen Vektor packen, die ein Vielfaches von 0,1 darstellen. Da der Vektor Werte eines Distanzlasers enthält, gibt es aber nicht immer das Vielfache von 0,1, sondern nur Werte, die sich in der Nähe dieses Wertes befinden, z.B. 0,2001; 0,4032 usw.
Also brauche ich einen Befehl, der mir die Werte raussucht, die am nähesten an dem Vielfachen von 0,1 liegen.
Hat da jemand vielleicht eine Idee wie man dieses Problem anpacken könnte? Komme da momentan nicht weiter.
Vielen Dank im Vorraus
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 09.09.2015, 09:45
Titel:
|
|
|
|
BlackDread |
Forum-Century
|
|
Beiträge: 212
|
|
|
|
Anmeldedatum: 11.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015a
|
|
|
|
|
|
Verfasst am: 09.09.2015, 12:48
Titel:
|
|
Hallo,
problematisch ist, da du nicht genau sagst, welche Werte du wirklich willst.
Zitat: |
Also brauche ich einen Befehl, der mir die Werte raussucht, die am nähesten an dem Vielfachen von 0,1 liegen. |
Soll ein Wert gefunden werden, der die geringste Abweichung hat? Sollen alle Werte innerhalb einer gewissen Toleranz gefunden werden?
Wobei als erster Schritt der Tipp von Winkow schonmal ein guter Ansatz ist.
Gruß
Chris
_________________
--> Kapieren statt Kopieren <---
____________________________________________________
FAQs sind dazu da, FAQs zu beantworten
Richtig fragen!
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2015, 11:21
Titel:
|
|
Danke für die Antworten.
@BlackDread: es sollen die Werte mit der geringsten Abweichung gefunden werden.
@Winkow:
habe die Modulo-Funktion ausprobiert. Jetzt bekomme ich einen neuen Vektor, der mir anzeigt, welche Werte an Welcher Stelle des Spaltenvektors die geringste Abweichung vom Vielfachen von 0,1 aufweisen. Wie kann ich jetzt aber diese Werte aus dem ursprünglichen Vektor extrahieren? Anbei ein Screenshot von der aktuellen Lage. Stehe hier leider gerade auf dem Schlauch.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.09.2015, 11:58
Titel:
|
|
Hallo,
Zitat: |
es sollen die Werte mit der geringsten Abweichung gefunden werden. |
Das ist immer noch nicht klar. Soll zu jedem Vielfachen von 0,1 im abgedeckten Intervall der Wert mit der geringsten Abweichung gefunden werden? Wenn nicht, wie wird unterschieden, für welche Vielfache ein solcher Wert gefunden werden soll? Oder sind die Daten so fein gerastert wie angegeben?
Was soll letztlich mit dem Ergebnis gemacht werden? Wenn das mit anderen dazugehörigen Werten in Verbindung gebracht werden soll, bietet sich auch
interp1
mit Option 'nearest' an.
Grüße,
Harald
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2015, 12:51
Titel:
|
|
|
|
|
Hallo Harald,
1. Die Werte sind so fein gerastert wie angegeben.
2. Es soll zu jeden Vielfachen von 0,1 der Wert mit der geringesten Abweichung gefunden werden, also zu 0,1; 0,2; 1,6; 8,4 etc.
Dieser Vektor ist ein Weg-Vektor aus einem Laserdistanzsensor, sprich er zeichnet den Weg ab dem Beginn der Messung auf. Dieser Laser war ein einem Fahrzeug montiert. Ich brauche jedoch nur den Wert für alle 10cm, also alle 0,1m.
Zusätzlich zeichnet er noch den Abstand zur Fahrbahnoberfläche auf. Ziel ist es, für jede 10cm den zugehörigen Höhenwert zu finden. Zum Schluss sollten die Vektoren die gleiche Länge aufweisen.
Insgesamt hat die Vorrichtung am Fahrzeug vier Lasersensoren, heisst also ich muss das Procedere noch weitere drei male wiederholen, aber das ist ja dann schnell gemacht sobald der erste Code dann einmal feststeht.
Mit diesen Vektoren soll im Anschluss das Prinzip der Mehrfachabtastung in Matlab eingefügt werden, mit dem sich das Längsprofil einer Straße berechnen und graphisch darstellen lässt.
Hoffe das Ganze ist jetzt ein wenig klarer.
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.09.2015, 13:45
Titel:
|
|
Hallo,
Zitat: |
Ziel ist es, für jede 10cm den zugehörigen Höhenwert zu finden. Zum Schluss sollten die Vektoren die gleiche Länge aufweisen. |
Dann würde ich wie gesagt interp1 mit Option 'nearest' verwenden. Die Ermittlung des nächstgelegenen Werts erfolgt dann intern.
Grüße,
Harald
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2015, 18:53
Titel:
|
|
EDIT: Quark geschrieben :)
|
|
|
Pasqua |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 22.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.09.2015, 11:02
Titel:
|
|
Hallo zusammen,
habe mich jetzt im Forum angemeldet.
Stand jetzt sieht es so aus:
VektorX=interp1(Sensor_D1neu, AR700_1, ?? ,'nearest');
Sensor_D1 neu ist der Wegvektor, AR700_1 ist der Abstandsvektor mit den Höhenwerten.
Soll jetzt an Stelle der ?? dieses 0.1? Wenn ich das ausprobiere dann spuckt er mir folgende Fehlermeldung aus:
Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 22.09.2015, 11:18
Titel:
|
|
Hallo Pasqua,
Die Fehlermeldung bedeutet, dass die Werte von "Sensor_D1neu" nicht monoton steigend. Das ist für eine Interpolation aber notwendig.
Wieso das so ist, musst Du herausfinden. Vielleicht hat das Auto gestanden?
Nun musst Du für XX die Werte einsetzen, für die Du Messwerte haben möchtest. Soweit ich verstanden habe ist das:
Mit passender Zeit als EndTime.
Gruß, Jan
|
|
|
Pasqua |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 22.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.09.2015, 11:54
Titel:
|
|
Hallo Jan S,
danke für deine Antwort. Der Wegvektor Sensor_D1 ist monoton steigend, der Vektor AR700_1 mit den Höhenwerten jedoch nicht, da sich durch die Unebenheiten der Straße die Werte, ganz vereinfacht dargestellt, wie eine Sinuskurve verhalten, d.h. mal wieder größere, dann wieder kleinere Werte.
So wie es aussieht passt dann dieser Ansatz mit der Funktion interp1 leider nicht oder?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.09.2015, 18:35
Titel:
|
|
Hallo,
Zitat: |
Der Wegvektor Sensor_D1 ist monoton steigend |
Sind doppelte Werte in Sensor_D1 enthalten? Wenn ja, dann ist dies das Problem, denn dann ist er nicht streng monoton steigend.
Ansonsten darf ich auf die Fehlermeldung verweisen:
Zitat: |
The grid vectors are not strictly monotonic increasing. |
Wenn MATLAB dies behauptet, dann bin ich recht zuversichtlich, dass das auch so ist.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 23.09.2015, 14:05
Titel:
|
|
Hallo Pasqua,
Bitte poste eine Frage nicht in mehreren Foren. Falls Du einen guten Grund für ein Cross-Posting hast, füge bitte einen Link in das jeweils andere Forum ein. Andernfalls vergeuden die Antwortenden ihre Zeit, wenn sie etwas schreiben, was an anderer Stelle schon geraten wurde. Danke!
Der zweite Input von
interp1
darf beliebige Werte annehmen. Nur der erste Input muss strikt monoton sein. Matlab sagt, dass er es nicht ist. Wie kommst Du zu einer gegenteiligen Annahme?
Gruß, Jan
|
|
|
Pasqua |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 22.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 13:11
Titel:
|
|
Geht klar!
Vielen Dank euch für die Lösungsvorschläge. Ich werde den Sensor_D1 nochmals überprüfen und euch dann Bescheid geben, sobald ich etwas gefunden habe.
|
|
|
Pasqua |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 22.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2015, 14:27
Titel:
|
|
Hallo Leute,
der Wegvektor war nicht streng monoton steigend. Das Problem wurde aber behoben und es funktioniert einwandfrei. Vielen Dank nochmals.
|
|
|
|
|
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 - 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.
|
|