Umrechnungsformel gesucht

ChrisTur

Cadet 1st Year
Registriert
Juni 2012
Beiträge
8
Hallo, ich bin auf der Suche nach einer passenden Formel zur Umrechnung von Zahlen für folgendes Problem:
Ich lese automatisch Werte ein im Bereich von 140-100 also fallend.
Aus diesen Werte möchte ich neue generieren im Bereich 20-255. Klar mit größeren Abständen da ich ja nur 40 Abstufungen bekomme. Hat da jemand eine Idee??

Vielen lieben Dank schon mal :)

Gruß Chris
 
Stichwort Geradengleichung ;)
 
Was versprichst Du Dir davon? Wenn Du die 40 möglichen Werte gleichmäßig auf 235 mögliche Werte verteilst, bleiben die Abstände ja gleich.

Unter der Annahme, dass 100=min das Minimum und 140=max das Maximum der einzulesenden Werte ist, wäre die passende Formel, um die einzulesenden Werte x in den Bereich {20,...,255} zu normieren, die Folgende:

y = (x - min)/(max-min)*235 + 20
 
  • Gefällt mir
Reaktionen: Schwarte
Die Formel von @Photon musst du, je nach Datentyp, dann noch auf-/abrunden, da du ja scheinbar mit Ganzzahlen rechnest.
 
Danke für die schnellen Antworten! Nur stehe ich immer noch auf dem Schlauch....
Also aus 140 soll 20 werden und aus 100 soll 255 werden. Wahrscheinlich sehe ich gerade den Wald vor lauter Bäumen nicht, sorry.
 
Super, das klappt!! Vielen Dank :) Wünsche allen einen super tollen Rutsch!!!
 
... den Hinweis von @Photon finde ich schon pfiffig, jedoch bildet die resultierende Funktion den gesamten Bereich 0-140 ab, Du benötigst jedoch explizit nur den Bereich 100-140.
Da Dir ein Raster aus 40 Zielwerten genügt würde ich hier eine Tabelle erstellen anstatt eine Formel versuchen zu erfinden. Also Tabelle bei der in einer Achse die Werte 100-140 stehen und auf der anderen die gwünschten Zielwerte 20-255. Formel hat auch den Nachteil daß unvorhergesehene Eingangswerte zu unvorhergesehenen Fehlern führen können, also weniger 'deterministisch' ist.

Wird in der Praxis z.B. bei Zuordnungen von Luftdruck zur Höhe beim fliegen auch so gemacht, siehe ISA-Tabelle, z.B. https://www.sensorsone.com/altitude-pressure-units-conversion/

Falls das programmiert werden muß eignet sich dafür der Datentyp 'Array'. Mit einem Indexpointer, der den Eingangswert hat suchst Du Dir dann den Zielwert aus der Tabelle. Fertig.
Die Tabelle kannst Du jederzeit einfach anpassen.
 
Ist das eine Hausaufgabe?
 
Zurück
Oben