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

Bestimmung desX-Wertes

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2010, 11:30     Titel: Bestimmung desX-Wertes
  Antworten mit Zitat      
Hi alle zusammen.

Ich muss mich schon mal vorab für die Frage entschuldigen, denn ich denke so schwierig kann das nicht sein. Ich komme jedoch jetzt mittlerweile seit einigen Tagen Recherche und Überlegen nicht auf eine Lösung.

Ich habe zwei gleichlange Vektoren (time,kraft). Nun möchte ich eigentlich nur für einen gegebenen kraft wert(80% und 20% von 'min_kraft') den zugehörigen time wert bekommen. Hab das bis jetzt folgendermaßen gelöst:

Code:

[min_kraft,minIndex]=min(kraft);
disp(time(minIndex))
 


Ich versteh aber nicht ganz, wieso ich das mit meiner einfachen formel nicht hinbekomme. rechne ich einfach mit 'min(kraft)*0.8' und weise dem natürlich neue Variabeln zu erhalte ich immer die Fehlermeldung 'too many output arguments'.

Vielen dank schonmal für die hilfreichen Antworten!

MfG Gast


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.05.2010, 11:51     Titel:
  Antworten mit Zitat      
Hallo,
Die Fehlermeldung sagt dass du zu viele Ausgabe erwartest
ich vermute, dass du so was probierst:
Code:
 
[min_kraft, minIndex] = min(kraft)*0.8
 


Das ist aber falsch, in der Formel kann MIN nur eine Ausgabe liefern
nur das ist möglich
Code:
 
[min_kraft,minIndex]=min(kraft);
min_kraft=min_kraft*0.8
disp(time(minIndex))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2010, 14:05     Titel: mit Bild
  Antworten mit Zitat      
Hi alle,

erstmal vielen Dank für die schnelle Antwort. Mit dem ersten Code hast du recht, das habe ich in etwa so versucht. Jedoch bin ich noch nicht wirklich weiter gekommen, ich hab mein Problem eventuell etwas unschlüssig dargestellt. Hier nochmal mein ganzes Problem mit einem kleinen Bild unterlegt.

Das blaue ist meine Kurve, die ich durch zwei Vektoren(Kraft und Time) erstellt habe, die die gleiche Länge haben. Ich möchte nun die Steigung der angelegten Geraden berechnen. Der Punkt P20 soll 20% des Kraftwertes von M haben, der Punkt P80 soll 80%. Da ich von M beide Koordinatenwerte über
Code:

[min_kraft,minIndex]=min(kraft);
disp(time(minIndex))
 

bestimmen kann, kann ich den Kraftwert schnell von P20 und P80 ausrechnen.

Jetzt fehlt mir nur noch der Zeitpunkt ( also der x-Wert) der beiden Punkte P.

Könnt ihr mir da weiterhelfen?? Vielleicht gibt es ja auch bessere Gesamtlösungen!!

Vielen Dank für euer bemühen
MfG Gast[/code]

Anstiegsrate.jpg
 Beschreibung:

Download
 Dateiname:  Anstiegsrate.jpg
 Dateigröße:  19.27 KB
 Heruntergeladen:  705 mal
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.05.2010, 14:26     Titel:
  Antworten mit Zitat      
Hallo,

wenn du Kraftwert hast, dann kannst Timewert so rausfinden:
Code:


time(kraft==Kraftwert_p80)
time(kraft==Kraftwert_p20)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2010, 15:19     Titel: x-wert
  Antworten mit Zitat      
Ja, theoretisch schon,

matlab gibt mir die fehlermeldung 'empty matrix: 0-by-1. Ich deute das so, das mein errechneter y-Wert so nicht exakt als Datenwert im Vektor vorhanden ist. Also wahrscheinlich irgendwo zwischendrin liegt und matlab den dann auch nicht zuordnen kann. Gibt es eine Möglichkeit dann einfach den naheliegendsten zu nehmen?

Hier noch als Bsp:

kraft = ...-33.4567 -33.7994 -34.3454 -34.6733....

mein x-Wert ist: -33.9954

in diesem fall sollte einfach der x-Wert: -33.7994 nehmen

Vielen Dank auch für die bisherigen Antworten!!
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.05.2010, 15:39     Titel:
  Antworten mit Zitat      
Hallo

da kannst über Interpolation dein Timewert rauskriegen:
Code:

interp1(kraft, time, -33.9954)
 
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.