|
Pampie |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:13
Titel: Vektor Division
|
 |
Hallo Leute,
hoffe, ihr könnt mir helfen.
Aus Messergebnissen habe ich zwei Vektoren (u und i) generiert <10000x1 double> mit je 10000 Werten, alles komplexe Zahlen der Form a+bi.
Nun will ich die Vektoren stellenweise dividieren.
Leider bekomme ich falsche Werte dabei raus. Habe stichprobenartig einzelne Werte raugenommen und berechnet.
Gibt es einen spezielleren Befehl für die Verwendung von komplexen Vektoren?
Danke und Gruß
|
|
|
|
|
Gast1 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:26
Titel:
|
 |
H,
eigentlich sollte das so funktionieren.
Ein paar genauere Infos wären nicht schlecht.
Poste doch mal ein paar Zeilen aus jedem Vektor.
Und dann eine Beispiel, wo die Berechnung fehl schlägt.
|
|
|
Pampie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:35
Titel:
|
 |
Hi, danke für die Antwort.
Zum Beispiel sehen die letzten fünf Zeilen der Vektoren so aus:
Vektor u:
0.0010 - 0.0008i
0.0021 - 0.0004i
-0.0008 + 0.0028i
0.0017 - 0.0485i
-0.0005 + 0.0008i
Vektor i:
0.0027 - 0.0194i
0.0071 - 0.0030i
0.0053 + 0.0245i
-0.1701 - 1.4199i
-0.0031 - 0.0238i
Vektor r:
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
-0.0000 - 0.0000i
In der letzten Zeile müsste aber :
rauskommen.
Der Vektor r ist für mich nicht erklärlich.
|
|
|
Gast1 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:40
Titel:
|
 |
Hi,
sind in den Vektoren eventuell sehr unterschiedlich große Zahlen drin?
Gib mal das ein:
Ich vermute, dass du vor dem Vektor r auch einen solchen Faktor hast,
gib mal:
ein, und sieh nach, ob dann immernoch alles 0 ist.
|
|
|
Pampie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:46
Titel:
|
 |
Bei Eingabe von
erscheint nur eine komplexe Zahl
Wie kommt denn dieser Wert jetzt zu Stande?
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:48
Titel:
|
 |
Hallo
Weil du i als variable benutzt, das ist aber ein reserviertes Wort für komplexe Zahlen.
Also statt i anderen Namen wählen, dann wird es funktionieren
Ausgabe:
Zitat: |
0.0475 + 0.0449i
0.2712 + 0.0582i
0.1024 + 0.0548i
0.0335 + 0.0052i
-0.0304 - 0.0250i
|
|
|
|
Gast1 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:53
Titel:
|
 |
Naja, die Werte in dem Vektor r sind richtig.
Es ist nur ein Anzeige-"Problem", was dadurch entsteht, dass du vermutlich Unterschiede in der Größenordnung der Werte in u und i hast.
Dass nun nicht -0.0304 - 0.02496i rauskommt, liegt daran, dass du beim Nachrechnen per Hand mit gerundeten Werte gerechnet hast.
r(end) ist der richtige (auch wieder gerundet angezeigte) Wert.
|
|
|
Pampie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:54
Titel:
|
 |
Hallo denny,
Wenn ich den Code so eingebe, wie du (also mit jeweils fünf komplexen Werten) und die Bezeichnung für i ändere, funktioniert es wunderbar.
Verwende ich jedoch die Vektoren mit 10000 Werten, erscheint als Ergebnis wieder der 0-Vektor (s.oben)
Mich würde es eher interessieren, was
bedeutet.
|
|
|
Pampie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:56
Titel:
|
 |
Gast1 hat Folgendes geschrieben: |
r(end) ist der richtige (auch wieder gerundet angezeigte) Wert. |
Müssten es dann nicht auch 10.000 Werte sein und nicht nur einer?
Oder ist dies sowas wie der Mittelwert?
Ach ne, schon kapiert.
Es ist der letzte, genaue Wert des Vektors, oder?
|
|
|
Gast1 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 11:57
Titel:
|
 |
r(end) gibt dir einfach den letzten Wert des Vektors aus.
Daran siehst du, dass r eben kein Nullvektor ist, sondern nur "falsch" angezeigt wird.
|
|
|
Pampie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 28.06.11
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 12:05
Titel:
|
 |
Vielen Dank für eure Hilfe, Leute.
Problem gelöst
|
|
|
tompie |

Forum-Guru
|
 |
Beiträge: 260
|
 |
|
 |
Anmeldedatum: 19.09.07
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: immer alles
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 14:15
Titel:
|
 |
denny hat Folgendes geschrieben: |
Hallo
Weil du i als variable benutzt, das ist aber ein reserviertes Wort für komplexe Zahlen.
Also statt i anderen Namen wählen, dann wird es funktionieren
|
Hallo Supporter,
das ist so NICHT richtig. Zwar sollte man nicht gerade den Buchstaben i als Variablennamen im Zusammenhang mit komplexen Zahlen benutzen, funktionieren tut es aber trotzdem.
Beweis:
Das Ergebnis ist korrekt. Das nächste Mal also bitte vor dem Posting testen!
Gruß tompie
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 14:37
Titel:
|
 |
|
 |
|
Danke tompie
das habe ich nachhinein auch bemerkt, wollte aber mich nicht korrigieren.
Weil man sollte i und j als Variablen nicht verwenden.
Das steht so in Matlab-Hilfe. Also kann es wohl zu Nebeneffekten führen, die man nicht sieht.
Zitat: |
Avoid Using i and j for Variables
MATLAB uses the characters i and j to represent imaginary units. Avoid using i and j for variable names if you intend to use them in complex arithmetic.
If you want to create a complex number without using i and j, you can use the complex function.
|
http://www.mathworks.de/help/techdo...../f10-60729.html#f10-60799
Und zum Testen der Code habe ich keine Zeit. Mache es während meiner Arbeitspause.
tompie hat Folgendes geschrieben: |
denny hat Folgendes geschrieben: |
Hallo
Weil du i als variable benutzt, das ist aber ein reserviertes Wort für komplexe Zahlen.
Also statt i anderen Namen wählen, dann wird es funktionieren
|
Hallo Supporter,
das ist so NICHT richtig. Zwar sollte man nicht gerade den Buchstaben i als Variablennamen im Zusammenhang mit komplexen Zahlen benutzen, funktionieren tut es aber trotzdem.
Beweis:
Das Ergebnis ist korrekt. Das nächste Mal also bitte vor dem Posting testen!
Gruß tompie |
|
|
|
Verschoben: 09.12.2011, 12:22 Uhr von denny Von Mathematik nach Programmierung |
|
|
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 - 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.
|
|