2-dim Matrix aus Gleichung < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:42 Mi 17.02.2010 | Autor: | JanaS |
Hallo!
Ich habe eine Gleichung G(u,v) und lasse u und v laufen.
u = 1:r
v = 1:r
Jetzt möchte ich eine Matrix M(u,v) erstellen, in der die jeweiligen Werte eingetragen werden. Wie mache ich das?
Ich habe versucht
M(u,v) = [mm] (1/(2*pi*s^2))*exp(-(u^2+v^2)/(2*s^2))
[/mm]
aber da schmeisst Matlab mir einen Fehler raus:
??? Error using ==> ^
Matrix must be square.
Warum??? Die Matrix ist doch quadratisch? Ich habe u und v und lasse beide von 1 bis zum gleichen Wert laufen.
Also, wie kann ich aus der Gleichung eine Matrix erstellen?
Vielen Dank und viele Grüsse, Jana
Hat sich erledigt .
for u = 1:(2*r+1)
for v = 1:(2*r+1)
M(u,v) = [mm] (1/(2*pi*s^2))*exp(-(u^2+v^2)/(2*s^2));
[/mm]
end
end
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:03 Mi 17.02.2010 | Autor: | leduart |
Hallo
nicht mal ich kann rauskriegen was die Einträge in deiner Matrix sein sollen, wie soll matlab das "wissen"
Gruss leduart
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:01 Do 18.02.2010 | Autor: | Frasier |
Hallo Jana,
das Problem ist der ^-Operator, der verhält sich anders als man auf den ersten Blick erwartet.
Schau dir mal
1: | A=[1 2;3 4]
| 2: | A^2
| 3: | A.^2 |
an.
Der . vor ^ sorgt dafür, dass jedes einzelne Element von A quadriert wird. Das [mm] A^2 [/mm] ist eigentlich eine Matrix-Multiplikation, um die durchzuführen gibt es ja eine Bedingung an die Größe der beteiligten Matrizen.
Du kannst statt deiner Schleife besser
1: | [u,v]=meshgrid(1:(2*r+1));
| 2: | M=1/(2*pi*s^2)*exp(-(u.^2+v.^2)/(2*s^2)); |
benutzen.
lg
F.
|
|
|
|