|
|
Punktsetzung nach Variable??? |
|
JimKnopf |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 01.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2010, 21:48
Titel: Punktsetzung nach Variable???
|
 |
Hallo,
bei der Programmierung in Matlab habe ich so meine Probleme mit der Punktsetzung in einer Formel. Wann muss ich nach einer Variablen einen Punkt setzen?
In dem unten aufgeführten Beispiel ist wz eine Variable welche von z abhängt. Also ein Array und nach einem Array soll ja ein Punkt gesetzt werden. Oder? Bei mir ist das in Moment eher "Try and Error".
I=1;
[x,y] = meshgrid(linspace(-10,10,100), linspace(-10,10,100));
In = I * (w0./wz).^2 * (exp(-2*(x.^2+y.^2)/wz.^2));
surf(x,y,In)
Wäre toll wenn mir jemand weiterhelefen könnte.
Gruß
Jim Knopf
|
|
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2010, 22:23
Titel:
|
 |
Der Punkt gehört nicht zur Variablen, sondern zu den Operatoren.
* ist das Skalarprodukt zweier Vektoren, bzw. das Matrixprodukt
*. ist eine Elementweise Multiplikation. Also Element 1 aus dem ersten Vektor wird mit Element 1 aus dem zweiten Vektor multipliziert und ergibt Element 1 im Ergebnisvektor, usw...
Das Selbe gilt für ./ und .^
|
|
|
JimKnopf |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 01.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 19:29
Titel:
|
 |
Hallo,
danke für die schnelle Hilfe aber ich hab noch immer so meine Problem. Also:
In = I * (w0./wz).^2 * (exp(-2*(x.^2+y.^2)/wz.^2));
w0 = Konstante
wz = Array
x, y = Array
Meiner Meinung nach müsste dann nur noch hinter die Klammer (x.^2+y.^2) ein Punkt. Also:
In = I * (w0./wz).^2 * (exp(-2*(x.^2+y.^2)./wz.^2));
Aber es funktioniert noch immer nicht....
Sorry aber ich steh gerade mit beiden Beinen auf der Leitung...
Gruß
Stephan
|
|
|
MatLabNooB |

Forum-Guru
|
 |
Beiträge: 262
|
 |
|
 |
Anmeldedatum: 27.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 19:38
Titel:
|
 |
|
|
JimKnopf |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 01.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 19:44
Titel:
|
 |
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 19:52
Titel:
|
 |
Nochmal: der Punkt steht -wenn er denn steht- vor dem Operator, nicht hinter der Klammer.
Nun zur Frage, ob ein Punkt stehen muss, oder nicht: nein, muss nicht. Du teilst eine Matrix durch einen Skalar, da muss kein Punkt stehen. Es wird jedes Element der Matrix durch den Skalar geteilt - das Ergebnis ist dann wieder eine Matrix der selben Größe (hier: size(x)).
Wenn Du lust hast, kannst Du vor dem / trotzdem einen Punkt schreiben, das ändert nichts.
Kurz:
* -> Matrixprodukt (siehe Wikipedia)
.* -> elementweise Multiplikation:
C(i, j) = A(i, j) * B(i, j). Sprich, der Eintrag links oben in C ist das Produkt aus den Einträgen links oben in A und B usw.
/, \ -> Matrixdivision (kennt die deutsche Wikipedia nicht, die englische schon)
./ -> Elementweise Division zweier Matrizen:
C(i, j) = A(i, j) / B(i, j). Wie bei der Multiplikation.
Wenn der zweite Operand ein Skalar ist, sind ./ und / bzw. .* und * das Selbe.
|
|
|
MatLabNooB |

Forum-Guru
|
 |
Beiträge: 262
|
 |
|
 |
Anmeldedatum: 27.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 19:53
Titel:
|
 |
gibt bei mir keinen fehler...
|
|
|
JimKnopf |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 01.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 20:11
Titel:
|
 |
Vielleicht habe ich doch an einer ganz anderen Stelle ein Problem. Im Anhang findet ihr mein M-file. Wenn ihr noch die Muse habt schaut es euch mal an.
Gruß
Beschreibung: |
|
 Download |
Dateiname: |
Intensverteilung.m |
Dateigröße: |
580 Bytes |
Heruntergeladen: |
734 mal |
|
|
|
MatLabNooB |

Forum-Guru
|
 |
Beiträge: 262
|
 |
|
 |
Anmeldedatum: 27.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2010, 20:39
Titel:
|
 |
das prob liegt daran, dass wz ein Vektor ist, weiss zwar grad nicht pb ich das jetzt so peile aber versuch mal
|
|
|
JimKnopf |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 01.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.05.2010, 19:09
Titel:
|
 |
Hallo,
vielen Dank für eure Hilfe. Der Fehler lag darin, wie ihr schon geschrieben habt, dass wz ein Array war und eine andere Größe hatte wie die für x und y. Konnte also gar nicht passen.
Wobei wz sowieso hätte konstant sein müssen.
Gruß
|
|
|
|
|
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.
|
|