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

Intervall auf die Werte eines Vektors Skalieren

 

Bodo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 13.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2012, 20:45     Titel: Intervall auf die Werte eines Vektors Skalieren
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.10.2012, 21:33     Titel:
  Antworten mit Zitat      
Hallo,

und wie soll diese Umrechnung passieren? Mit einer linearen Transformation? Das ginge z.B. so:
Code:
U2 = U1/10*4 + 3;


Ich frage mich aber, warum du nicht direkt Werte zwischen 3 und 7 generierst?
Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Bodo
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 13.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2012, 14:42     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.10.2012, 15:22     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Bodo
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 13.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 22:15     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.10.2012, 17:09     Titel:
  Antworten mit Zitat      
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 ;)
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.