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

Vektoren Knobelaufgabe

 

Otter222
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 08:47     Titel: Vektoren Knobelaufgabe
  Antworten mit Zitat      
Hi,
ich hab eine echte knobelaufgabe und ich komm einfach nicht drauf.

Ich hab drei Kurven: M1(n1), M2(n2), und M3(n3).
Dabei zeigt die erste kurve 20% die zweite 40% und die dritte 60%.

Meine Frage ist:
1. wie erzeuge ich die matrix und
2. wie schaffe ich es für zB 35% den jeweiligen M und n Wert auszulesen?

M und n liegen jeweils in Vektoren vor...

Ein Tipp in die richtige Richtung wäre echt hilfreich.

M_over_n.fig
 Beschreibung:

Download
 Dateiname:  M_over_n.fig
 Dateigröße:  43.85 KB
 Heruntergeladen:  295 mal


Zuletzt bearbeitet von Otter222 am 01.12.2011, 09:20, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2011, 09:13     Titel:
  Antworten mit Zitat      
Hallo,

zu 1.: welche Matrix?
zu 2.: wenn ich es richtig verstehe, würdest du für 35% auch eine Kurve von M über n haben wollen.
Die M-Werte kannst du dann z.B. über Interpolation oder, falls es ein sinnvolles Modell gibt: Regression, erhalten. Stichworte:
interp1, linear regression, nlinfit, lsqcurvefit.

Bei Graphen helfen übrigens verschiedene Farben und eine Legende unheimlich beim Verständnis Wink

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 09:25     Titel:
  Antworten mit Zitat      
Hi,
also in der Matrix sollen alle drei Kurven enthalten sein.
Die drei Kurven stehen für die bestimmten % Sätze 20, 40, und 60%.

Letztendlich will ich für eine bestimmte Drehzahl n und einen bestimmten Prozentsatz ein Moment M rauslesen (also über eine Lookup Tabelle)

Nur schaff ich es nicht die Matrix zu erzeugen.
Hast du einen Tipp?


PS: ich hab die Graphik erneuert Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2011, 09:32     Titel:
  Antworten mit Zitat      
Hallo,

dann würde ich zunächst für n die Werte von M1, M2 und M3 interpolieren und dann den Prozentsatz interpolieren. Etwa so (Annahme: alle Vektoren sind Spaltenvektoren - wenn nicht: transponieren):

Code:
M1n = interp1(n1, M1, n);
M2n = interp1(n2, M2, n);
M3n = interp1(n3, M3, n);

M35 = interp1([0.2 0.4 0.6], [M1n'; M2n'; M3n'], 0.35)


Da ich keine Daten zum Ausprobieren habe, ist das jetzt erst mal nur so hingeschrieben - also keine Garantie, dass es funktioniert.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 09:42     Titel:
  Antworten mit Zitat      
Hi,

ich hab hier die Vektoren.
Ein weiteres Problem ist, dass die Vektoren unterschiedlich lang sind...

Vektoren.zip
 Beschreibung:

Download
 Dateiname:  Vektoren.zip
 Dateigröße:  37.41 KB
 Heruntergeladen:  292 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2011, 09:54     Titel:
  Antworten mit Zitat      
Hallo,

dass die Vektoren unterschiedlich lang sind, sehe ich nicht so sehr als Problem. Das größere Problem sehe ich darin, dass in den n-Werten dieselben Werte mehrfach auftauchen. Was soll dann genommen werden?

Und eine blöde Frage: was hält dich davon ab, das Code-Beispiel an deinen Daten auszuprobieren? Wink

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 10:04     Titel:
  Antworten mit Zitat      
ich habs ausproiert, allerdings weis ich nicht, was ich für n eingeben soll...
Embarassed


Wegen den mehrfach vorkommenden n: Muss ich die Kurve glätten?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

dann sag das doch Wink

Für n würde ich ein Gitter von Drehzahlen vorgeben, z.B. -12:2515 .

Und ja, ich würde eine Art Vorverarbeitung über das ganze laufen lassen. Ob glätten hier die richtige Strategie ist, ist eine andere Frage.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 10:29     Titel:
  Antworten mit Zitat      
was gäbe es noch für Möglichkeiten?
Private Nachricht senden Benutzer-Profile anzeigen
 
Otter222
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 13:01     Titel:
  Antworten mit Zitat      
also ich habe es versucht und jetzt nur jeden 10. Wert eingelesen.

Code:

n_GW1_10 =n_GW1(1:10:end);
n_GW2_10 =n_GW2(1:10:end);
n_GW3_10 =n_GW3(1:10:end);

M_Ret1_10 =M_Ret1 (1:10:end);
M_Ret2_10 =M_Ret2 (1:10:end);
M_Ret3_10 =M_Ret3 (1:10:end);

n= -12:2515;

M1n = interp1(n_GW1_10, M_Ret1_10, n);
M2n = interp1(n_GW2_10, M_Ret2_10, n);
M3n = interp1(n_GW3_10, M_Ret3_10, n);

M35 = interp1([0.2 0.4 0.6], [M1n'; M2n'; M3n'], 0.35)


Aber ich bekomme immernoch die gleiche Fehlermeldung:
??? Error using ==> interp1 at 261
The values of X should be distinct.

Ich weis nicht was gemeint ist.
Mit der Erklärung fang ich nichts an. Könnt ihr mir weiterhelfen?

Danke schon mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2011, 13:29     Titel:
  Antworten mit Zitat      
Hallo,

das bedeutet, dass du trotzdem noch doppelte x-Werte hast und MATLAB nicht weiß, welche es für die Interpolation nehmen soll.
Einfach Werte "zufällig" wegzuwerfen ist wohl ohnehin nicht die beste Idee.

Man könnte über UNIQUE gehen und so die einzigartigen Werte bekommen, und dann mit HÌST alle Werte diesen Werten zuordnen. Dann mit ACCUMARRAY beispielsweise die Durchschnittswerte für jeden vorkommenden Wert berechnen. Das sind gerade nur Ideen; such doch mal in Forum, ob jemand schon mal so eine Frage gestellt hatte. Kommt mir irgendwo dunkel bekannt vor.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 29.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 14:37     Titel:
  Antworten mit Zitat      
Ok,
ich ich hab zwar ein wenig rumprobiert, aber das ganze scheint noch eine Nummer zu hoch für mich zu sein. vielleich versuch ich mich wan anders noch mal daran.
Ich hab mir jetzt einzelne Punkte von Hand zusammengestellt (ja, traurig aber wahr) und das ganze funktioniert! Das passt so erst einmal.

Herzlichen Dank Harald für deine Mühe und deine genialen Tipps.

Grüßle Otter222
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 - 2025 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.