Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » plotten in Matlab
Autor
Universität/Hochschule J plotten in Matlab
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Themenstart: 2017-07-11

Ich arbeite zwar schon länger mit Matlab, das plotten bereitet mir allerdings immer noch Probleme. \sourceon nameDerSprache i = 2:202; y = zeros(size(i)); size(y) for( c = 0:200) y(i) = 8.8*10^-6*c^4 - 0.0034*c^3 + 0.37*c^2 - 6.7*c +1.7*10^2; end plot(y) \sourceoff Ich möchte ganz einfach die Daten von y plotten. Zuvor habe ich den Teil vor der Schleife weg gelassen und die Fehlermeldung "Subscript indices must either be real positive integers or logicals." bekommen. Ich hab das so verstanden, dass mein Vektor nicht die Indizes 0 und 1 enthalten darf weil diese Zahlen für logische Operationen vorbehalten sind. Wenn ich meinen Code allerdings so durchlaufen lasse, ist der Plot falsch. Warum ist das so? Und wie kann ich das beheben. Danke schon mal für eure Hilfe!


   Profil
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 11650
Wohnort: Wien
  Beitrag No.1, eingetragen 2017-07-12

Hallo NoNameTI-30x, Deine Interpretation der Fehlermeldung stimmt nicht, 1 ist als positive ganze Zahl sehr wohl als Index erlaubt. Der Grund für den Fehler war die Verwendung der imaginären Einheit i als Index, mit y(c) und einem positiven Startwert für c sollte es klappen. Besser wäre es, einen Vektor x mit den Werten der Abszisse zu erzeugen und dann das Polynom ohne Schleife mit Hilfe des elementweisen Potenzoperators .^ zu berechnen. Servus, Roland


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.2, vom Themenstarter, eingetragen 2017-07-13

Danke für die Hilfe. Wie aber würde ich eine Schleife dann von negativen Zahlen laufen lassen? Ich weiß man soll schleifen in Matlab vermeiden, dennoch müsste das doch gehen!


   Profil
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 11650
Wohnort: Wien
  Beitrag No.3, eingetragen 2017-07-13

Hallo NoNameTI-30x, Du solltest zwischen der ganzzahligen Schleifenvariable c und den im Allgemeinen nicht ganzzahligen Werten, an denen Du das Polynom auswertest, unterscheiden. Wenn Du c als Index für den Vektor y verwendest, darf er keine nichtpositiven Werte annehmen. Der Behauptung, dass man Schleifen in Matlab vermeiden sollte, kann ich in dieser Allgemeinheit nicht zustimmen. Es gibt Fälle, wo sie zu längerer Rechenzeit führen, aber dabei ist oft die fehlene Reservierung des Speichers schuld. In Deinem Beispiel könntest Du auch die Funktion polyval verwenden. Servus, Roland


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.4, vom Themenstarter, eingetragen 2017-07-17

Danke für die Hilfe!


   Profil
NoNameTI-30x hat die Antworten auf ihre/seine Frage gesehen.
NoNameTI-30x hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]