|
|
Intervall auf die Werte eines Vektors Skalieren |
|
Bodo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 13.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.10.2012, 20:45
Titel: Intervall auf die Werte eines Vektors Skalieren
|
|
Hallo Matlab Experten,
ich habe das folgende Problem:
Ich habe einen Vektor,dessen Werte ein bestimmtes Spannungintervall darstellen.
a=linspace(1,100,50);
Angenommen, dass diese 50 Werte einen Spannungsintervall von 0 bis 10 Volt darstellen,möchte ich diese Werte auf ein Spannungsintervall von 3 bis 7Volt umrechnen.
Könnte mir jemand Helfen?
Danke
Bodo
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.10.2012, 21:33
Titel:
|
|
Hallo,
und wie soll diese Umrechnung passieren? Mit einer linearen Transformation? Das ginge z.B. so:
Ich frage mich aber, warum du nicht direkt Werte zwischen 3 und 7 generierst?
Grüße,
Harald
|
|
|
Bodo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 13.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.10.2012, 14:42
Titel:
|
|
Hallo Harald,
danke für den Vorschlag. Es handelt sich um ein Programm,dass eine interaktive Eingabe der Werten ermöglicht.In dem Fall habe ich erst den Vektor,dessen Werte ein bestimmtes Intervall darstellen.
Die neue Grenzen des Intervalls werden interaktiv eingegeben.D.h., man muss dieses neue Intervall auf den vorhandenen Vektor abbilden.
Ein neues Vektor,der mit dem vorhandenen nichts gemeinsames hat zu generieren, würde keinen Sinn machen.
Gruus
Bodo
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 08.10.2012, 15:22
Titel:
|
|
Hallo,
Zitat: |
D.h., man muss dieses neue Intervall auf den vorhandenen Vektor abbilden. |
Ja, und meine Rückfrage war, wie das abgebildet werden soll. Für den linearen Fall habe ich ja schon einen Vorschlag gemacht, der nur noch verallgemeinert werden muss (Intervallanfang statt 3, Intervalllänge statt 4).
Falls es nicht linear abgebildet werden soll, müsstest du sagen wie.
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 ;)
|
|
|
Bodo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 13.02.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.10.2012, 22:15
Titel:
|
|
Hi Harald,
danke für die Lösung;ja es handelt sich um eine lineare Abbildung.
Da habe ich allerdings noch eine offene Frage:
wenn der Vektor (auf dessen Werte ich Skaliere) beim Null anfängt,dann ist ja trivial den Schnittpunkt mit der y-Achse zu finden.
Wie findet man den Schnittpunkt ,wenn der Vektor nicht beim Null anfängt??
Dürfte vielleicht auch trivial sein,trotzdem weiss ich es nicht!
Danke
Bodo
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.10.2012, 17:09
Titel:
|
|
Hallo,
Die allgemeine Transformation von [a, b] auf [c, d] sollte so aussehen:
U = (U - a) / (b-a) * (d-c) + c;
Die Schritte: Verschiebung auf [0 b-a] ... Skalierung auf [0 1]... Skalierung auf [0 d-c]... Verschiebung auf [c d]
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 ;)
|
|
|
|
|
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.
|
|